What is the null hypothesis checked by ANOVA? I know that null hypothesis used by ANOVA is that means in all the groups are the same and, if p-value is small, we reject the null hypothesis which means that we believe that not all the means are the same (that is, there are groups with different means).
However, it is not clear to me if we also assume within the null hypothesis that standard deviation in all the groups is the same. What about higher momenta (like skewness and kurtosis), do we assume them to be equal? Do we assume, within the null hypothesis, that distributions of all the groups are the same? Do we assume that the distributions are normal?

ANOVA assumes all group distributions under consideration to be normal with the same variance. Consequently, the only way they can differ is in their means.
However, you allude to the fact that the test could pick up on other differences, and if you want to use ANOVA to test something else, it is common in statistics to use a surrogate test. The best example I know is the Wilcoxon Mann-Whitney U test, which only tests mean equality under strict assumptions, but it is a decent test of mean equality (good power, not too many false positives) even when those assumptions are not the case.
You could do a simulation study to see how well ANOVA detects differences in, say, standard deviation when the means are all equal. I would expect such a test to have awful power barely (if at all) above the $\alpha$-level of the test, which would explain why we use ANOVA to detect mean differences, but perhaps someone could write a simulation that surprises me.
