четверг, 24 октября 2024 г.

i3 монитор охранника

в продолжение https://terminalko.blogspot.com/2019/04/blog-post.html 

надо :  mpv xorg xdotool i3 

топовые команды

поворот экранаexport DISPLAY=':0.0' && xrandr -o left &
вернуть как былоexport DISPLAY=':0.0' && xrandr -o normal &
переключение на рабочее место 1export DISPLAY=':0.0' && exec i3-msg 'workspace 1' &
переключение на рабочее место 1 альтернативный способexport DISPLAY=':0.0' && xdotool key "Super_L+1"
переключение на рабочее место 2export DISPLAY=':0.0' && exec i3-msg 'workspace 2' &
переключение на рабочее место 2 альтернативный способexport DISPLAY=':0.0' && xdotool key "Super_L+2"
запуск произвольного потокаexport DISPLAY=':0.0' && mpv -border=no rtsp://admin:admin@10.190.249.9/live/main &
узнать текущее рабочее место
i3-msg -t get_workspaces | jq '.[] | select(.focused==true).name' | cut -d"\"" -f2
автозапуск иксов

в файле

/home/filalex/.bash_profile 

прописываем

[[ -z $DISPLAY && $XDG_VTNR -eq 1 ]] && exec startx
автологин пользователя

в файле

/etc/systemd/system/getty.target.wants/getty@tty1.service

меняем строку

ExecStart=-/sbin/agetty -o '-p -- \\u' --noclear %I $TERM

на

ExecStart=-/sbin/agetty -a filalex %I $TERM
автозапуск приложений

в конце файла

/home/filalex/.config/i3/config

прописываем либо скрипт либо команду

exec /home/filalex/load_layout.sh
exec  mpv -border=no rtsp://admin:admin@10.190.249.9/live/main &
переключение мониторов

в кронтаб записываем

1-59/2 * * * *	filalex	export DISPLAY=':0.0' && exec i3-msg 'workspace 1' &
2-58/2 * * * *	filalex	export DISPLAY=':0.0' && exec i3-msg 'workspace 2' &
сохранить текущее рабочее место
i3-save-tree --workspace 1 > /home/filalex/workspace-1.json
для восстановления требуется пройтись по нему скриптом
tail -n +2 /home/filalex/workspace-1.json | fgrep -v '// splitv' | sed 's|//||g' > /home/filalex/workspace1.json
рестор сейшн идет командой
i3-msg "workspace 1; append_layout /home/filalex/workspace1.json"

но это только восстанавливает мозайку которая была сохранена, поэтому надо еще запустить в этой мазайке приложухи проще всего это сделать скриптом , а его засунуть в автозапуск

/home/filalex/load_layout.sh
#!/bin/bash

# Во-первых, мы добавим сохраненный макет рабочей области N в рабочую область M
i3-msg "workspace 1; append_layout /home/filalex/workspace1.json"

# И, наконец, мы заполним контейнеры программами
(mpv -border=no rtsp://admin:admin@10.190.253.88/live/main &)
(mpv -border=no rtsp://admin:admin@10.190.252.101/live/main &)
(mpv -border=no rtsp://admin:admin@10.190.254.94/live/main &)
подключение к монитору
x11vnc  -display :0 -auth /tmp/serverauth.*

осталось захардкодить проверку потоков тисипидампом и перезапуск в случае падения


--------------------------------------------------------

неактуально но пусть лежит
Chrome's autoplay policies will change in April of 2018 при обновлении системы получили дисейбл автоплея в браузере
таблетка
google-chrome-stable --kiosk http://127.0.0.1/ --new-window --start-maximized --incognito  --autoplay-policy=no-user-gesture-required --disable-features=PreloadMediaEngagementData,AutoplayIgnoreWebAudio,MediaEngagementBypassAutoplayPolicies & 

так же можно юзать firefox (в сервии 71 они научились работать в режиме киоск и не нужны вякие необновляемые плагины) но эта сволочь будет просить обновлений пока не нагуглил как их отключить
как вариант дождаться ESR версии но на данный момент она 68 а следующая будет 78 - June 30, 2020 хотя в ней тоже могут быть камни

firefox --kiosk http://127.0.0.1 -private 
  • автологин пользователя
неактуально но пусть лежит
вариант firefox

требуются пакеты php lighttpd xdotool (xdotool можно заменить на разширение для файрфокса типа R-kiosk )
в автоматически запускаемые приложения добавляем 2 пункта

  • firefox
  • и скрипт который на окне огнелиса жмакнет F11
#!/bin/sh
sleep 20
export DISPLAY=':0.0'
WID=`xdotool search --name Mozilla | head -1`
xdotool windowactivate $WID
xdotool key F11

firefox настраиваем на страничку http://127.0.0.1
на локалхосте ставим след кусочек html

<meta http-equiv="refresh" content="36000">
<body bgcolor="black">
<TABLE border="0" style="width:100%; height:100%;" bgcolor="black">
        <TR>
                <TD><iframe style="width:100%; height:100%;" src="http://193.203.61.11:8080/Apelsin/embed.html?realtime=true"></iframe>></TD> 
                <TD><iframe style="width:100%; height:100%;" src="http://193.203.61.11:8080/opp_router/embed.html?realtime=true"></iframe>></TD> 

        </TR>
        <TR>
                <TD><iframe style="width:100%; height:100%;" src="http://193.203.61.11:8080/opp_agents/embed.html?realtime=true"></iframe>></TD> 
                <TD><iframe style="width:100%; height:100%;" src="http://193.203.61.11:8080/senko/embed.html?realtime=true"></iframe>></TD> 
        </TR>
</TABLE>
</body>

в /etc/lighttpd/lighttpd.conf дописываем строки

$HTTP["remoteip"] !~ "127.0.0.1|37.235.235.0|37.235.143.99" {
url.access-deny = ("")
}
вариант mplayer

требуются пакеты xdotool mplayer2

в кроне

*/1 *	* * *	root	/home/filalex/strdumper.sh
*/1 *	* * *	filalex	/home/filalex/4mpl.sh
strdumper.sh
#!/bin/bash
for i in {1..4}
do
dumphost=`grep str$i /home/filalex/4mpl.sh | grep -E -o "([0-9]{1,3}[\.]){3}[0-9]{1,3}"`
timeout 5 tcpdump -i enp1s0 -n -q host $dumphost > /home/filalex/tdump$i
cp /home/filalex/tdump$i /home/filalex/dump$i`
done

4mpl.sh
#!/bin/bash
# тут указываем какие стримы будем вещать 
scriptname=4mpl.sh
str1=rtmp://10.190.255.215:1935/livemain
str2=rtmp://10.190.255.148:1935/livemain
str3=rtmp://10.80.1.132:1935/livemain
str4=rtmp://10.190.255.147:1935/livemain
# глядим что за экран у нас, вдруг сменили и пригодиться в положениях плеера
export DISPLAY=':0.0'
xwin=`xdotool getdisplaygeometry | awk {'print $1'}`
ywin=`xdotool getdisplaygeometry | awk {'print $2'}`
# прячим мышку? помоему не работает 
xdotool mousemove "$xwin $ywin"
# это статусбар убунту, мешается по умолчанию на 24 пикселя, сука
Barsize=24
# тут мы делем полученый размер экрана на 4 равных части за вычетом бара
let "wsizex=$xwin / 2"
let "wsizey=$ywin / 2 - ($Barsize / 2)"
wsize="$wsizex""x""$wsizey"
let "wsizeyY=$wsizey + $Barsize "
# водим переменные позиций окон
gpos1="+0+$Barsize"
gpos2="+$wsizex+$Barsize"
gpos3="+$wsizex+$wsizeyY"
gpos4="+0+$wsizeyY"
# гавнякаем переменными в syslog - тупо для дебага, можно удалить
logger "$scriptname str1=$str1"
logger "$scriptname str2=$str2"
logger "$scriptname str3=$str3"
logger "$scriptname str4=$str4"
logger "$scriptname xwin=$xwin"
logger "$scriptname ywin=$ywin"
logger "$scriptname wsize=$wsize"
logger "$scriptname gpos1=$gpos1"
logger "$scriptname gpos2=$gpos2"
logger "$scriptname gpos3=$gpos3"
logger "$scriptname gpos4=$gpos4"

# из соседнего скрипта тисипидампим ip переменных str и складываем
# в файл, если в файле меньше 2 х строк - потока нет, перезапускаемся

a=1
b=`cat /home/filalex/dump1 | wc -l `
c=`cat /home/filalex/dump2 | wc -l `
d=`cat /home/filalex/dump3 | wc -l `
e=`cat /home/filalex/dump4 | wc -l `
# тут я не понял как работет $переменная$а_тут_вторая_которая_подставляется_первой поэтому говнокод
if  [ "$b" -gt "$a" ]
    then
    logger "$scriptname поток $str1 в норме, что то прилетелоработаем дальше "
    else
    logger "$scriptname поток $str1 упал, перезапускаем плеер"
    mplayer -noborder -geometry "$wsize"$gpos1 $str1 &
fi
if  [ "$c" -gt "$a" ]
    then
    logger "$scriptname поток $str2 в норме, что то прилетелоработаем дальше "
    else
    logger "$scriptname поток $str2 упал, перезапускаем плеер"
    mplayer -noborder -geometry "$wsize"$gpos2 $str2 &
fi
if  [ "$d" -gt "$a" ]
    then
    logger "$scriptname поток $str3 в норме, что то прилетелоработаем дальше "
    else
    logger "$scriptname поток $str3 упал, перезапускаем плеер"
    mplayer -noborder -geometry "$wsize"$gpos3 $str3 &
fi
if  [ "$e" -gt "$a" ]
    then
    logger "$scriptname поток $str4 в норме, что то прилетелоработаем дальше "
    else
    logger "$scriptname поток $str4 упал, перезапускаем плеер"
    mplayer -noborder -geometry "$wsize"$gpos4 $str4 &
fi

x11vnc

 

УДАЛЕННЫЙ ДОСТУП НА УЖЕ ОТКРЫТУЮ Х-сессию!

Нужен рут-доступ по ssh на комп жертвы и пакет x11vnc, если его нет - ставим

Далее запускаем

x11vnc  -noxfixes -noxrecord -noxdamage  -display :0 -auth /var/run/lightdm/root/:0
если необходимо указать ip (в случае с VPN офисами)
Номер дисплея может отличаться, то что после -auth тоже, подглядеть можно с помощью ps wwwwaux | grep auth. Подробнее в man x11vnc

лениво

с уже рабочей тачки копируем ключ

cat /root/.ssh/authorized_keys | ssh root@192.168.11.11 'cat >> ~/.ssh/authorized_keys'

воскресенье, 20 октября 2024 г.

PingОвалОчка

 "от попингуя слышу", как говорится. просто пинговать и получать стату по ответам на icmp запросы уже не модно, ну точнее можно олдскульно но иногда душа требует красоты 

gping  https://github.com/orf/gping 


есть инстал на все системы, даже винду,  оставлю только любимый линукс 

echo 'deb [signed-by=/usr/share/keyrings/azlux.gpg] https://packages.azlux.fr/debian/ bookworm main' | sudo tee /etc/apt/sources.list.d/azlux.list
sudo apt install gpg
curl -s https://azlux.fr/repo.gpg.key | gpg --dearmor | sudo tee /usr/share/keyrings/azlux.gpg > /dev/null
sudo apt update
sudo apt install gping

noping 

Пакет правда называется oping а команда noping странно, первый раз такое встречааю и каждый раз натыкаюсь когда вспоминаю про него и хочу поставить. 



в низу прикольная статиски с цветом в верху привычная строка ответа 



понедельник, 10 апреля 2023 г.

image to text

Задача: вытащить последний скрин мака и дернуть из него текст (ака юзер прислал какой то длинный хеш скрином а не текстом и влом перебивать)

Ньюансы: мак хранит фотки на рабочем столе и где это изменить я не нашел плюсом текст с пробелами формата Снимок экрана 2023-04-11 в 05.54.28.png

скрипт генерации строки (найти последний файл на рабочем столе так как скриншот - это последнее что ты туда положил)

 cat ./scripts/imgtotext

#!/bin/bash

a=`ls -tp ./Desktop/ | grep -v /$ | head -1|  awk {'print $5'}`

day=`ls -tp ./Desktop/ | grep -v /$ | head -1|  awk {'print $3'}`

b="./Desktop/Снимок\ экрана\ $day\ в\ "

c=$b$a 

echo "vision_text_detection $c | grep text"


алиас и функция 

teminalk0@teminalk0-osx ~ % cat ./.zshrc

alias itt="./scripts/imgtotext"

vision_text_detection() {

    if [[ $2 ]]; then MIME_TYPE=$2 ; else MIME_TYPE=image; fi

    curl -H "Authorization: Bearer `yc iam create-token`" \

    "https://vision.api.cloud.yandex.net/vision/v1/batchAnalyze" \

    -d @<(cat << EOF

{

    "folderId": "`yc config get folder-id`",

    "analyze_specs": [{

        "content": "`base64 -i $1`",

        "features": [{

            "type": "TEXT_DETECTION",

            "text_detection_config": {

                "language_codes": ["*"]

            }

        }],

        "mime_type": "$MIME_TYPE"

    }]

}

EOF

)

}


на выходе команды itt будет готовая строка, повторный вод в терминал даст на выхлопе текст с картинки 

вариант улучшить - переписав всю основную часть функции в скрипт

среда, 22 февраля 2023 г.

делаем кабельдиаг когда упал линк

 :local link;

/interface ethernet cable-test ether5 once do={

   :set link $"cable-pairs";

};

:if ($link != "link-ok") do={

/log error "$link";

};


скрипт в нетвотч, в логе будет что то типа (топик логлевел и проче под себя)

12:13:12 script,error open:2;normal:0;open:2;open:3

можно нотифаку в тг сделать обавочно, но надо как то передать двоеточия и запяты.  у меня почему то на коленке приходило только первое значение. курить не стал так как не потребовалось 

пятница, 1 октября 2021 г.

IdenTrust DST Root CA X3

для винды  https://disk.yandex.ru/d/Zl6mpDnp4k3z2Q 

на debian/ubuntu лечаться так: в /etc/ca-certificates.conf найти mozilla/DST_Root_CA_X3.crt и закоментить. Далее выполнить update-ca-certificates --fresh  

вторник, 14 сентября 2021 г.

энидеск бекапим адресную книгу

grep ad.roster.items /home/filalex/.anydesk/user.conf | tr ';' '\n' |  sed -e'/,,/d' -e 's/,/\ /g' | awk {'print $2" "$3" "$4'} 

user.conf  - файл энидеска , содержащий соединения формат записи - все в строке через точку запятую, если переименовал - значит нужное, если имя соединению не дал , то  соединение имеет две запятых 

задача - пробежаться по файлу, заменить точку с запятой на новую строку, убрать строки не содержащие имя соединения , ну и вывести за исключеине столбца номер 1  (там может быть имя энидеск что то типа hostname@ad - обцчно мало что говорит) 

ну куда запихать это - хоть в телеграмм присылай ..... 

conn=`grep ad.roster.items /home/filalex/.anydesk/user.conf` && echo $conn |  tr ';' '\n' |  sed -e'/,,/d' -e 's/,/\ /g' | awk {'print $2" "$3" "$4'} > conn1 && cat conn | md5sum -c --status <(cat conn1 | md5sum) && echo равны || (msg=`cat conn1` && wget -O /dev/null -o /dev/null  "https://api.telegram.org/bot****id****:******key*****_24/sendMessage?chat_id=-****chatid******&disable_notification=true&text=$msg" && cat conn1 > conn)


воскресенье, 12 сентября 2021 г.

жмем qcow2

 оригинал взял тут

ну как обычно, хз сколько надо места виртуалке, ну чтобы не мало - 32.. оказалось достаточно 6-8 

приходим к выводу что 32 - много, особенно если их клонировать потом - жирновато 


на винде качаем утилиту SDelete 

на вируталке в командной строке .. процедура не быстрая 

> sdelete64 -z C:

потом на хосте 

qemu-img convert -O qcow2 /mnt/pve/nfsSSD/images/102/vm-102-disk-0.qcow2 /mnt/pve/nfsSSD/images/102/xp_comress.qcow2

тушим вирталку, бекапим файл оригиналього образа,  подменяем файл на сжатый 

mv /mnt/pve/nfsSSD/images/102/vm-102-disk-0.qcow2 /mnt/pve/nfsSSD/images/102/vm-102-disk-0.qcow2_old

mv /mnt/pve/nfsSSD/images/102/xp_comress.qcow2 /mnt/pve/nfsSSD/images/102/vm-102-disk-0.qcow2

если стартануло - все ок делетим оригинал  радуемся месту 

четверг, 9 сентября 2021 г.

среда, 25 августа 2021 г.

mac

 cat /usr/bin/mac

используем для вывода регистроточкозависымых маков 


#!/bin/bash

echo $1 | sed 's/-/:/g'

echo $1 | sed 's/.*/\U&/'

echo $1 | sed 's/-/:/g'| sed 's/.*/\U&/'


как вариант для просомотра мака в DHCP микротика 


mac=`echo $1 | sed 's/-/:/g'| sed 's/.*/\U&/'`

ssh 192.168.13.1 ip dhcp-server lease print detail  where mac-address="$mac"

пятница, 14 мая 2021 г.

win 10 home to pro

оригинал взят тут

при куче флешек на ноут установилась только одна система, остальные вываливались в какой то баг видимо из за драйвера видео, или еще из чего - короче не ставились

клиенту нужно было установить pro версия, а по фaкту встал home 

попытки установить что то иное приводили к нулевому результату и трете времени 

найденый ман помог 

- копируем код VK7JG-NPHTM-C97JM-9MPGT-3V66T

- отключаем инет 

- идем в насройки - меняем ключ (ручками) и говорим применить (можем получить ошибку но я данной не видел)

- ребут - проверка - да, стала про

- включаем нет и тянем обновления 

среда, 21 октября 2020 г.

собираем видео из картинок


 ffmpeg -framerate 5 -pattern_type glob -i '*.png'   -c:v libx264 -r 30 -pix_fmt yuv420p out.mp4


-framerate 5 - пять кадров в секунду

понедельник, 29 июня 2020 г.

костылики телеграмма и картинок

задача - скриншот экрана и отправка его в телеграмм

#!/bin/bash
export DISPLAY=':0.0'
/usr/bin/shutter --full --delay=0 --exit_after_capture --no_session --disable_systray --output=/tmp/img-XXXXXX.png > /dev/null 2>&1
/bin/imgur /tmp/img-XXXXXX.png > /tmp/scr.txt
a=`cat /tmp/scr.txt`
wget -q "https://api.telegram.org/bot112233445:AA1mDwSO8hG2Rgo7Q2DYQWBmn8xRCDP5_24/sendMessage?chat_id=-262621929&text=$a"


что требуется :
- shutter (в принципе любая програмулька что умеет делать скрин экрана аля gnome-screenshot или scrot )
https://github.com/tremby/imgur.sh (нагуглил скрипт по аплоаду картинок)
- свой телеграм бот (юзал эту статейку)

в крон под пользователем, в крацце -  делаем скрин, отправляем его в imgur (там как то надо свой id получить и прописать в скрипте, на сайте было) получаем урл на фотку, вотку отправлем в чат с собой 

пятница, 8 мая 2020 г.

тепловая карта неудачного входа в SSH

источник
идем на https://ipinfo.io/ регаемся - получаем API key он нужен будет скрипту (бесплатный лимит запросов 50к в месяц то есть каждый айпишник из лога  это 1 запрос )

ставим недостающие пакеты
pip3 install folium requests ipinfo
тянем сам скрипт
wget https://raw.githubusercontent.com/meesaltena/SSHHeatmap/master/SSHHeatmap.py
собираем попытки входа на сервер

ssh root@193.*.61.11 'grep "Failed password" /var/log/auth.log' > failed.txt

генерим хтмлку где последнее - это ключ взятый ранее
python3 SSHHeatmap.py failed.txt 6e**f9**f**fb*
получаем файл  heatmap.html - открываем в браузере и топаем настраивать файл ту бан




четверг, 30 января 2020 г.

разбрасываем ключи



cat ./keyadd.sh

#!/bin/bash
cat /home/filalex/.ssh/id_rsa.pub | ssh root@"$1" "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"

берем файл hosts2 в котором построчно введены ip тачек

while read LINE; do /home/filalex/keyadd.sh $LINE; done < hosts2

вводим пароли 

ура, ходим по ключу 

понедельник, 25 ноября 2019 г.

Wifi Map


Wifi Heat Map - Survey 




приложение для анализа вайфай покрытия в квартире , здинии или организации

вложил план - походил по уголкам потыкал где ты - получил картинку 

среда, 30 октября 2019 г.

запись cli

пока искал одну нашел пачку, понравилось из них 2 тулзы
http://showterm.io/ - собственно что искал ,
установка от рута :

  • curl showterm.io/showterm > /bin/showterm
  • chmod +x /bin/showterm
  • запуск командой showterm - и пока не написать exit - все будет писаться, после как написал, файлик еше и зааплоадится на их ресурс - очень удобно

    ну а если не надо аплоадить ибо файл секурный и нало сохранить локально - то утилитка ttyrec по умолчанию сохраняет файл ~/ttyrecord либо указать иной, воспроизвести можно командой ttyplay

    пятница, 2 августа 2019 г.

    qos tos и прочие няшки

    пока как черновичек чтобы не забыть тут табличка "Here’s a table of DSCP and TOS values in their most common formats just for reference"

    TOS (Dec)TOS (Hex)TOS Precedence NameTOS Delay flagTOS Throughput flagTOS Reliability flagDSCP (Hex)DSCP (Dec)DSCP/PHB Class
    00x00Routine0000x000none
    40x04Routine0010x011none
    80x08Routine0100x022none
    120x0CRoutine0110x033none
    160x10Routine1000x044none
    320x20Priority0000x088cs1
    400x28Priority0100x0A10af11
    480x30Priority1000x0C12af12
    560x38Priority1100x0E14af13
    640x40Immediate0000x1016cs2
    720x48Immediate0100x1218af21
    800x50Immediate1000x1420af22
    880x58Immediate1100x1622af23
    960x60Flash0000x1824cs3
    1040x68Flash0100x1A26af31
    1120x70Flash1000x1C28af32
    1200x78Flash1100x1E30af33
    1280x80FlashOverride0000x2032cs4
    1360x88FlashOverride0100x2234af41
    1440x90FlashOverride1000x2436af42
    1520x98FlashOverride1100x2638af43
    1600xA0Critical0000x2840cs5
    1760xB0Critical1000x2C44voice-admit
    1840xB8Critical1100x2E46ef
    1920xC0InterNetworkControl0000x3048cs6
    2240xE0NetworkControl0000x3856cs7
    пакет oping и последующая команда noping  192.168.13.14 -Q cs7 позволяет запускать пинги с нужным приоритетом
    микротик помогает передавать трафик Tools:Packet_Sniffer - пинаем на ip с определенного интерфейса на этом ip ловим либо вайршарком с фильтром "udp.port==37008 and !(arp or icmp or dns or stp)" или тиссипидампом sudo tcpdump -eni enp2s0 udp port 37008 -vvv